Doctrine プロジェクトの docblock コメントでコレクション内のエンティティの期待されるクラスを文書化する標準的な方法はありますか? 何かのようなもの:
/**
* @var Collection<User>
*/
protected $users;
現在、PHPDoc は docblock アノテーションのデファクト スタンダードのようですが、このユース ケースについての言及は見つかりませんでした。
Doctrine プロジェクトの docblock コメントでコレクション内のエンティティの期待されるクラスを文書化する標準的な方法はありますか? 何かのようなもの:
/**
* @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);
}
}