根据Symfony Plugin文档,PhpStorm应该能够在使用服务容器时识别服务:
- ContainerInterface :: get()
中的服务引用- 检测ContainerInterface :: get()结果类型
我有PhpStorm 2016.3.2,Symfony插件0.13.134,为我的项目启用了Symfony插件,但是PhpStorm无法识别我的自定义Symfony包中的yml文件中定义的服务。
使用@my.service.id
IDE在yml文件中引用我的服务时会发出警告:"缺少服务"。使用ContainerInterface::get('my.service.id')
请求服务时会出现同样的问题。
一切都适用于Symfony核心中定义的服务,但在我自己的服务方面无效。
显然,IDE能够识别在包src/[Bundle]/Resource/config/event_listeners.yml
内定义的事件监听器没有问题,但它无法识别src/[Bundle]/Resource/config/services.yml
答案 0 :(得分:0)
检查Settings->Languages & Frameworks->Symofony
配置路径是否正确。
答案 1 :(得分:0)
我与PhpStrom 2018.2.2和Symfony插件v0.16.165有相同的问题 我使用.yml文件,发现类属性中是否有双引号-PhpStorm无法识别服务,并且如果有单引号或没有双引号-都可以
不起作用
some.service:
class: "App\SomeService"
arguments: ["@argument"]
工作
some.service:
class: 'App\SomeService'
arguments: ["@argument"]
也要工作
some.service:
class: App\SomeService
arguments: ["@argument"]
在文档中,所有版本的Symfony的所有类都没有引号 https://symfony.com/doc/current/service_container.html