2013-01-22 61 views
14

我使用Zend Studio在PHP中用CakePHP進行開發,而CakePHP的一個問題是視圖都引用了未聲明的局部變量。如何使用PHPDoc符號聲明局部變量的類型?

因此,例如,在控制器中,你會

$這個 - >設置( '工作',新MyJobObject());

然後在視圖中,你可以

回聲$求職>的getName();

我的問題是,Zend Studio無法在$job上執行自動完成,因爲它的類型是未知的。現在有PHPDoc標籤可以讓你聲明這個類型,以便IDE可以執行自動完成。例如@var標籤可用於類中定義屬性的類型。

class MyJobObject 
{ 
    /** 
    * @var MyStatusObject 
    */ 
    public $status; 
} 

有沒有辦法做這樣的事情的局部變量?

回答

22

你必須使用一個線形態:/** @var $job MyJobObject */

注意一些編輯喜歡的語法的其他方式:/** @var MyJobObject $job */

+1

你可以把它放在一個可執行程序塊中的任何地方,它會一直有效直到函數結束(或任何重新定義)。 –

+0

謝謝你!這將是一個很大的幫助。 – cgTag

+5

NetBeans似乎認識到'/ * @var $ varName varType * /'語法(注意**註釋開始處只有一個'*') – matt

4

您務必做好你的看法/模板文件的頂部。

<?PHP 
/* @var $job MyJobObject */ 
?> 
+1

謝謝!我接受了其他答案,因爲他的代表點較低,但再次感謝您的回答。 – cgTag