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。顺便说一句,它没有返回的确切类型。因此; 我需要说 Phpstorm 父类的 $repository 对象是什么类型。

我知道 Phpstorm 使用 Phpdoc 符号来完成代码。因此我尝试使用@property 表示法并将下面的行添加到子类中。

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

它不起作用。你有什么主意吗?非常感谢。

4

1 回答 1

1

正如@LazyOne 在他的评论中所说,问题在于我在注释中缺少 * 字符。@property 标签现在工作完美。

它应该是:

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