懒服务无法正常工作

问题描述:

我从services.yml想偷懒数据库服务,但它似乎并没有表现出做这样的事情:懒服务无法正常工作

$db= $this->container->get('database'); 
var_dump(class_implements($db)); 

我做了两个:

composer require ocramius/proxy-manager 
composer require symfony/proxy-manager-bridge 

services: 
    database: 
    class: Namespace\Database 
    lazy: true 

它只返回一个空数组。我可能做错了什么?

P.S.我使用的是Symfony的组件,而不是整个框架。

+0

正如我所看到的默认情况下生成“noop”代理(RealServiceInstantiator类)。不知道为什么是这样。 –

+0

但是我可以证实,如果您只是遵循官方文档(添加作曲家要求并使用lazy = true属性,则懒惰加载无效。 –

我有同样的问题。如果你不使用整个symfony框架,你应该在安装symfony/proxy-manager-bridgeocramius/proxy-manager之后设置代理实例化器,除非它将使用RealServiceInstantiator来创建实际对象,而不是代理。

$containerBuilder = new ContainerBuilder(); 
$containerBuilder->setProxyInstantiator(new \Symfony\Component\DependencyInjection\LazyProxy\Instantiator\RuntimeInstantiator())