2013-05-05 2 views
0

저는 Symfony 2/Twig를 사용하고 있습니다. 나는 Twig 확장 기능을 가지고 있는데, 무엇보다도 사용자 선호도에 따라 맞춤형 날짜 형식을 출력하기 위해 날짜 필터를 오버로드합니다.새 Twig_Environment에서 사용할 수있는 나뭇 가지 확장

응용 프로그램/설정/services.yml :

twig.extension.static: 
    class: %twig_static_extension% # set elsewhere 
    tags: 
     - { name: twig.extension } 

나는 데이터베이스에서 템플릿을 렌더링하기 위해 새로운 Twig_Environment를 초기화 할 필요 해요 :

컨트롤러 :

$env = new \Twig_Environment(new \Twig_Loader_String()); 

그러나 나는이 새로운 환경이 확장을 자동으로 포함하지 않는다는 것을 알게되었다.

당연히, 나는과 같이로드 할 수 있습니다 : 나는 사용될 수있는 모든 나뭇 가지 환경에 확장을 사용할 수 있도록하기 위해 할 수있는 일이

$env->addExtension(new FQCN\To\StaticExtension()); 

있습니까?

+0

에서 TwigEnvironmentPass에서 당신이 정말로에 * 과부하 * 날짜 필터가 필요하십니까했다 할 수 있습니까? Symfony2로 새로운 필터를 만드는 것은 매우 쉽습니다. 그런 까다로운 일을 시도하는 것을 귀찮게하지 마십시오. –

+0

확장 기능 자체에 문제가 없었습니다. 나는 그 질문을 너무 잘 말하지 않았다. 새로운 Twig_Environment가 인스턴스화 될 때 서비스로 정의 된 모든 Twig 확장을 사용할 수 있어야하지만, 그렇지 않은 것으로 나타났습니다. – ncatnow

+0

Symfony2에서는'Twig_Environment'에 신경 쓸 필요가 없으며 서비스가 처음부터 초기화되고 컨테이너 범위의 서비스로 환경을 사용합니다. 데이터베이스에서 나뭇 가지 문자열을 렌더링하는 경우 [twigstringbundle] (https://packagist.org/packages/r1pp3rj4ck/TwigstringBundle) –

답변

-1

당신은 컴파일러 패스를 작성하고 번들로 주입, 걸릴은 TwigBundle