PhpStorm无法识别yml文件中定义的服务

时间:2017-01-19 16:12:18

标签: phpstorm symfony

根据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

中定义的服务

2 个答案:

答案 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