使用 symfony 容器服务时代码完成不起作用

Code completion is not working when using symfony container services

我在我的 Symfony 2 应用程序中使用 FOSUserBundle,想知道如何在 PHPStorm 中完成代码完成工作,因为当您通过容器注入服务时,例如:

$userManager = $this->container->get('fos_user.user_manager');

并尝试使用 $userManager 来查看其界面 - 我什么也没看到,因为对于 PHPStorm,这是一个常规变量,而不是通过 "new" 运算符构建的对象。

有没有办法让它显示这个对象的可用方法?

就像我们通常对真实对象所做的那样:

谢谢!

你必须给变量分配一个注释,如下所示,告诉 phpstorm class 变量从中接收实例(ps:我不使用 fosUserBundle).

/** @var \myProject\appBundle\entityManager $userManager */
$userManager = $this->container->get('fos_user.user_manager');

PS: 你安装了Symfony2 plugin了吗?

对我来说,执行

composer update

在控制台中工作。