2013-09-25 22 views
5

Supponiamo che ho una classeCome commentare classe per il completamento del codice in PhpStorm

class Class1 
{ 
    public function method1(){ 
     return "hello world"; 
    } 

} 

e ho un'altra classe che utilizza questo in una classe

class Class2 
{ 
    /** @var $firstClass Class1 */ 
    private $firstClass; 

    public function __construct($firstClass) 
    { 
      $this->firstClass = $firstClass; 

    } 

    public function method2() 
    { 
      return $this->firstClass-> "I want code completion to work here" 
    } 
} 

Come faccio ad avere il completamento del codice a funziona con PHPDoc. Ho cercato phpdoc per scope, dichiarazioni, tutti i tipi di cose. Non riesco a capire i termini o il posizionamento della riga di commento per phpdoc per raccogliere questo.

Sto usando phpstorm. Aiuto!

+1

L'esempio funziona correttamente (selezionato sia in build EAP v6.0.3 che v7). Forse il tuo codice reale differisce dall'esempio. BTW - non è necessario il nome della variabile quando si scrive il commento PHPDoc per la variabile di classe/campo (poiché tale commento di PHPDoc ** deve essere posizionato poco prima di quel campo), questo dovrebbe essere sufficiente: '/ ** @var Class1 */private $ firstClass; ' – LazyOne

+0

Ho dovuto invece aggiungere manualmente il nome della variabile nel commento PHPDoc, altrimenti non ho avuto il completamento automatico. Ad esempio, come questo (senza aggiungere '$ newUser', il completamento automatico non funziona). '/ ** @var $ newUser \ Model \ User * /' – MDT

risposta

10

Controlla gli spazi dei nomi delle classi.

Se la classe ha spazio dei nomi, assicurarsi di definirli correttamente nei commenti o in alias.
Commenti esempio:

... 
    /** @var \vendor\namespace\Class1 */ 
    private $firstClass; 
... 

Alias ​​esempio:

use \vendor\namespace\Class1; 
... 
    /** @var Class1 */ 
    private $firstClass; 
... 


check definizione directory di progetto.

Se le directory di classe non sono definite nelle impostazioni del progetto, PHPStorm non può indicizzare tali classi. In questo caso il completamento del codice non funzionerà. Come set up project directories in PHPStorm.


Cancella cache di PHPStorm.

A volte la cache di PHPStorm non è più valida. Per questo motivo, il completamento del codice potrebbe non funzionare correttamente. Official how to cache cleanup.

Problemi correlati