是否有一种标准方法可以在 Doctrine 项目的 docblock 注释中记录 Collection 中预期的实体类?就像是:
/**
* @var Collection<User>
*/
protected $users;
看起来 PHPDoc 现在是 docblock 注释的事实上的标准,但我找不到任何关于这个用例的提及。
是否有一种标准方法可以在 Doctrine 项目的 docblock 注释中记录 Collection 中预期的实体类?就像是:
/**
* @var Collection<User>
*/
protected $users;
看起来 PHPDoc 现在是 docblock 注释的事实上的标准,但我找不到任何关于这个用例的提及。
这是一个解决方案,使您能够对Collection
方法和对象方法进行自动完成:
/**
* @param Collection|User[] $users
*/
public function foo($users)
{
$users-> // autocompletion on Collection methods works
foreach ($users as $user) {
$user-> // autocompletion on User methods work
}
}
至少它在 PhpStorm 中就像一个魅力。
我认为User[]
应该工作。不记得我在哪里找到的。
有几种不同的方法可以记录预期变量。查看phpDoc 文档以获取可用标签的完整列表。
class MyClass
{
/**
* Users collection
* @var \Doctrine\ORM\ArrayCollection
*/
protected $users;
/**
* My method that doesn't do much
* @param \Doctrine\ORM\ArrayCollection $users
* @return void
*/
public function myMethod(\Doctrine\ORM\ArrayCollection $users)
{
/** @var \Entities\Users $user */
$user = current($this->users);
}
}