2

継承されたプロパティに対する Phpstorm のコード補完に問題があります。以下に私のコードの例を示します。

class ParentClass
{
  public $repository;
}

/*
 * @property Entity\SubClassRepository $repository
 */
class SubClass extends ParentClass
{
  public function __construct()
  {
    $this->repository= $this->em->getRepository('Entity\Subclass');
  }

  public function ExampleFunction()
  {
    $this->repository-> !Here i need the code completion!
  }
}

getRepository 関数は、param = Entity\SubClass の SubClassRepository を返すか、param = Entity\OtherClass の OtherClassRepository を返します。ところで、それが返す正確な型はありません。したがって; 親クラスの $repository オブジェクトの型が Phpstorm であると言う必要があります。

Phpstorm がコード補完に Phpdoc 表記法を使用していることは知っています。したがって、@property 表記を使用して、以下の行を SubClass に追加しようとしました。

/*
 * @property Entity\SubClassRepository $repository
 */

うまくいきません。何か考えはありますか?どうもありがとう。

4

1 に答える 1

1

The problem was about my missing * character in annotations as @LazyOne said in his comment. @property tag is working perfect now.

It should read:

/**
 * @property Entity\SubClassRepository $repository
 */
于 2013-02-02T15:48:02.540 に答える