2013-09-25 14 views
5

と仮定私が持っているクラスはどのようにphpstormでコード補完のためのクラスをコメントする

​​

と私はクラスでこれを使用して別のクラスを持っている私は、コード補完を取得するにはどうすればよい

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" 
    } 
} 

PHPDocを使って作業する。私は範囲、宣言、すべての種類のものについてphpdocを検索しました。私は、phpdocがこれを拾うためのコメント行の用語や配置を理解できません。

私はphpstormを使用しています。助けて!

+1

あなたの例はうまく動作します(v6.0.3とv7の両方のEAPビルドでチェックインされています)。おそらくあなたの実際のコードは例とは異なります。ところで、変数/フィールドのPHPDocコメントを記述する際には変数名の必要はありません(そのようなPHPDocコメント**はそのフィールドの直前に置かなければなりません)、これで十分です: '/ ** @var Class1 */private $ firstClass; ' – LazyOne

+0

代わりにPHPDocコメントに変数名を手動で追加する必要がありました。それ以外の場合はオートコンプリートを取得できませんでした。 例えば、 '$ newUser'を追加しないで、自動補完は機能しません。 '/ ** @var $ newUser \ Model \ User * /' – MDT

答えて

10

クラスの名前空間を確認してください。

クラスに名前空間がある場合は、コメントまたはエイリアスで正しく定義するようにしてください。
コメント例:

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

別名の例:

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


チェックプロジェクトディレクトリの定義。

プロジェクト設定でクラスディレクトリが定義されていない場合、PHPStormはこれらのクラスをインデックスに登録できません。この場合、コード補完は機能しません。どのようにset up project directories in PHPStormに。


クリアPHPStormキャッシュ。

PHPStormのキャッシュが無効になることがあります。このため、コーデックが正しく動作しないことがあります。 Official how to cache cleanup

関連する問題