我使用phpstorm。在开发 symfony2 应用程序时,我习惯使用 symfony2 插件为容器服务提供自动完成功能:
[
这也提供了返回对象的补全。
在仅使用部分 symfony2 组件(即容器组件)的非 symfony PHP 项目中使用容器组件时,有没有办法让服务完成工作?
我知道在 phpstorm 的设置中:
Other Settings > Symfony2 Plugins > Container
我可以添加额外的 xml 容器文件,但我不知道它应该是什么样子。
我如何创建这样的文件?
例如,我通过以下方式创建一个容器:
/**
* @return ContainerBuilder
* @todo Initialize the container on a more reasonable place
*/
private function createServiceContainer()
{
$container = new ContainerBuilder();
$loader = new YamlFileLoader($container, new FileLocator(ROOT_PATH . '/config'));
$loader->load('services.yml');
return $container;
}
我的 services.yml 看起来像这样:
services:
redis:
class: App\Framework\RedisService
doctrine:
class: DoctrineService
factory: [\App\Database\DoctrineService, getDoctrine]
我如何创建一个 symfony2 插件可以理解的 container.xml
并为我提供两个服务 redis
和 doctrine
容器?
最佳答案
该 XML 文件是由 ContainerBuilderDebugDumpPass
创建的编译器传入 Symfony2 标准版,可以看到它使用 XmlDumper
创建文件。
关于symfony - 如何使用 phpstorm 和 symfony2 插件获得容器的自动完成功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32225993/