2017-04-24 6 views
1
내가 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. Symfony의 컴포넌트를 사용하고 있으며 전체 프레임 워크가 아닙니다.

+0

"noop"프록시가 기본적으로 생성되는 것을 볼 수 있습니다 (RealServiceInstantiator 클래스). 왜 그런지 모르겠다. –

+0

하지만 공식 문서 (작성자 요구 사항을 추가하고 lazy = true 속성을 사용하는 경우)를 따르는 경우 게으른로드가 작동하지 않는다는 것을 확인할 수 있습니다. –

답변

0

동일한 문제가 있습니다. symfony 프레임 워크 전체를 사용하지 않는 경우 과 ocramius/proxy-manager을 설치 한 후에 proxy instantiator를 설정해야합니다. 단 프록시 대신 실제 객체를 만드는 RealServiceInstantiator을 사용하지 않으면됩니다.

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