PHPStan:具有泛型类的属性未指定其类型:TKey,T

问题描述 投票:0回答:1

我正在Symfony项目上运行PHPStan,其中我在Doctrine实体中具有以下关系:

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

使用规则级别6]进行运行分析,我收到有关该属性(及其getter返回类型)的以下消息:

具有通用类App\Entity\Course\Chapter::$slides的属性Doctrine\Common\Collections\ArrayCollection未指定其类型:TKey,T💡您可以通过在checkGenericClassInNonGenericObjectType: false中设置phpstan.neon关闭此功能。

我的编辑尝试只会使PHPStan感到困惑,也许是因为我在这里没有完全理解泛型。但是仅仅因为我不明白而使消息沉默将是愚蠢的。

我应该在PHPDoc中添加或更改什么?

我在Symfony项目上运行PHPStan,在其中我在Doctrine实体中具有以下关系:/ ** * @ORM \ OneToMany(targetEntity =“ App \ Entity \ Course \ Slide”,mappingBy =“ chapter”,级联= {“ persist”} ...

generics doctrine static-analysis phpdoc phpstan
1个回答
0
投票

[ArrayCollection有两个类型变量:TKey和T。因此,ArrayCollection<Slide>还不够,您需要类似ArrayCollection<int, Slide>的东西。

© www.soinside.com 2019 - 2024. All rights reserved.