Ответ 1
Я думаю, что User[]
должен работать. Не помню, где я нашел это.
Существует ли стандартный способ документировать ожидаемый класс сущностей внутри коллекции в комментарии docblock в проекте Doctrine? Что-то вроде:
/**
* @var Collection<User>
*/
protected $users;
Похоже, что PHPDoc является стандартом де-факто для аннотаций докблока, но я не мог найти упоминания для этого случая использования.
Я думаю, что User[]
должен работать. Не помню, где я нашел это.
Вот решение, которое позволяет иметь автозаполнение как в методах 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 по крайней мере.
Существует несколько различных способов документирования ожидаемых переменных. Посмотрите документацию 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);
}
}