是否可以在捆绑扩展中获取doctrine服务?
我可以访问容器,但无法获得教条服务。
...
class UltroExtension extends Extension
{
public function load(array $configs, ContainerBuilder $container){
$dm = $container->get('doctrine_mongodb');
...
}
}
我收到此错误:服务定义“doctrine_mongodb”不存在。
答案 0 :(得分:4)
容器尚未构建/编译 - 这就是为什么只有ContainerBuiler
对象传递给load()
方法的原因。
您无法从构建器获取服务对象,因为它不会保留服务,而只会保留服务定义。
改为使用 compiler pass 。有关详细信息,请参阅文档章节 Compiling the container 。
也许您的问题也可以使用 service factory 来解决。