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。
我无法理解这个 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。