PSALM: класс или интерфейс, определенный в Docblock, не существует
У меня такой код:
namespace Some\Space\Utility;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
/**
* @psalm-template T
*/
class SomeAdapter
{
/**
* Some method
*
* @psalm-param iterable<int, T> $data
*
* @psalm-return Collection<int, T>
*/
public static function doSomething($data): Collection
{
if (is_array($data)) {
$data = new ArrayCollection($data);
}
return $data;
}
}
Возможно, я что-то пропустил, но у меня для
@psalm-param
:
psalm: UndefinedDocblockClass: класс или интерфейс, определяемый Docblock Some\Space\Utility\T не существует
1 ответ
Проблема заключалась в том, что функция статическая. Это правильное решение:
/**
* Some method
*
* @psalm-template T
* @psalm-param iterable<int, T> $data
*
* @psalm-return Collection<int, T>
*/
Шаблон должен быть определен в методе.