PHPStan 没有将 Symfony EntityRepository 解释为通用的

PHPStan is not interpreting a Symfony EntityRepository as a generic

我无法理解这个 PHPStan 错误。 PHPStan 说我需要提供对象的 EntityRepository 的 class 字符串。我正在提供 class ServiceEntityRepository(扩展 EntityRepository)的 class 字符串 class "Schedule".

错误

Parameter $repositoryClass of attribute class Doctrine\ORM\Mapping\Entity constructor expects class-string<Doctrine\ORM\EntityRepository<T of object>>|null, 'App\Repository\ScheduleRepository' given.

代码

这是有问题的代码:

namespace App\Entity\Schedule;

use App\Repository\ScheduleRepository;

#[ORM\Entity(repositoryClass: ScheduleRepository::class)]
class Schedule implements JsonSerializable
{
    // ...

并且存储库 class 引用:

namespace App\Repository;

use App\Entity\Schedule\Schedule;
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;

/*
 * @extends ServiceEntityRepository<Schedule>
 */
class ScheduleRepository extends ServiceEntityRepository
{
    // ...

(注意:ServiceEntityRepository 扩展了 EntityRepository。)

这是 phpstan 中的一个错误。

解决方案:将 phpstan 升级到 1.6.8。