2013-01-22 12 views
14

Uso Zend Studio per svilupparlo in PHP con CakePHP e uno dei problemi con CakePHP è che le viste fanno riferimento a variabili locali non dichiarate.Come dichiarare il tipo per le variabili locali usando la notazione PHPDoc?

Così, per esempio, nel controllore si

$ this-> set ('lavoro', nuova MyJobObject());

Poi nella vista si poteva

echo $ job-> getName();

Il mio problema è che Zend Studio non può eseguire il completamento automatico su $job, perché il suo tipo è sconosciuto. Ora esistono tag PHPDoc che consentono di dichiarare il tipo in modo che gli IDE possano eseguire il completamento automatico. Il tag @var ad esempio può essere utilizzato in una classe per definire il tipo di una proprietà.

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

C'è un modo per fare qualcosa di simile per le variabili locali?

risposta

22

è necessario utilizzare la forma di una riga: /** @var $job MyJobObject */

Nota che alcuni editori preferiscono la sintassi viceversa: /** @var MyJobObject $job */

+1

È possibile posizionarlo ovunque in un blocco eseguibile e sarà effettivo fino alla fine della funzione (o qualsiasi ridefinizione). –

+0

grazie ragazzo! Questo sarà di grande aiuto. – cgTag

+5

NetBeans sembra riconoscere la sintassi '/ * @var $ varNome varType * /' (** nota ** c'è solo una '*' all'inizio del commento) – matt

4

shoud fare sulla parte superiore del file di visualizzazione/template.

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

Grazie! Ho accettato l'altra risposta perché aveva punti di valutazione inferiori, ma grazie ancora per aver risposto. – cgTag

Problemi correlati