PhpStorm没有正确处理Doctrine Repository的Symfony工厂服务

时间:2014-09-11 02:48:03

标签: symfony phpstorm

我在Symfony项目中为Doctrine存储库提供了以下服务定义:

my_custom_repository_service:
    class: My\Custom\ClassName
    factory_service: doctrine.orm.entity_manager
    factory_method: getRepository
    arguments: [MyCustom:ClassName]

这样调用此服务时:

$repository = $this->container->get('my_custom_repository_service')

PhpStorm认为$repositoryMy\Custom\ClassName而不是它实际上的Doctrine存储库。有可能解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

您应该将服务的class属性更改为Doctrine\ORM\EntityRepository

my_custom_repository_service:
    class: Doctrine\ORM\EntityRepository
    factory_service: doctrine.orm.entity_manager
    factory_method: getRepository
    arguments: [MyCustom:ClassName]

在这种情况下无关紧要,因为存储库工厂将生成您作为参数传入的类的实例(它也应该是Doctrine \ ORM \ EntityRepository的子类),但如果PHPStorm是接下来,这将解决它。