PHPStan: Свойство с классом generi c не указывает его типы: TKey, T - PullRequest
0 голосов
/ 25 апреля 2020

Я запускаю PHPStan в проекте Symfony, где у меня есть следующее отношение в Doctrine объекте:

/**
 * @ORM\OneToMany(targetEntity="App\Entity\Course\Slide", mappedBy="chapter", cascade={"persist"}, orphanRemoval=true)
 * @ORM\OrderBy({"listOrder" = "ASC"})
 *
 * @var ArrayCollection<Slide>
 */
private $slides;

Выполнение анализа с уровень правила 6 Я получил следующее сообщение о свойстве (и типе возвращаемого им метода получения):

Свойство App\Entity\Course\Chapter::$slides с generi c класс Doctrine\Common\Collections\ArrayCollection не определяет его типы: TKey, T
? Вы можете отключить это, установив checkGenericClassInNonGenericObjectType: false в своем phpstan.neon.

Мои попытки редактирования только запутали PHPStan, возможно потому что я не совсем понимаю дженерики здесь. Но молчать сообщение просто потому, что я его не получаю, было бы глупо.

Что я должен добавить или изменить в PHPDo c?

1 Ответ

1 голос
/ 25 апреля 2020

ArrayCollection имеет две переменные типа: TKey и T. Поэтому ArrayCollection<Slide> недостаточно, вам нужно что-то вроде ArrayCollection<int, Slide>.

...