2014-04-24 4 views
3

심포니 확장 템플릿 변수 형성 렌더링하기 :나뭇 가지 문자열을 렌더링하고 내 Symfony2 프로젝트에 나뭇 가지를 사용하고

$env = new \Twig_Environment(new \Twig_Loader_String()); 
$render = $env->render(
    $renderString, 
    $params 
); 

그러나 나는 그런 '경로', 'URL'로 심포니 나뭇 가지 기능을 (사용하려고 할 때 , '자산', '컨트롤러'등) 예외를 던졌습니다 "함수"경로 "존재하지 않습니다 ...". 이 기능을 Twig_Environment에 삽입하는 방법이 있습니까?

답변

5

이 시도 :

$twig = clone $this->get('twig'); 
$twig->setLoader(new \Twig_Loader_String()); 
$rendered = $twig->render(
    "Test string template: {{ result|humanize }}", 
    array("result" => "mega_success") 
); 

참조를 요청처럼, path 일처럼 (심포니 3에서 테스트)

$rendered = $this->get('twig')->createTemplate('Hi {{ name }}!')->render(['name' => 'simon']); 

심포니 확장 : How to render a string as a Twig template in Symfony2

+0

원래 나뭇 가지 환경 (잠재적 인 메모리 문제 또는 원래 환경의 이상한 부작용과 같은)을 복제 할 때 어떤 문제가 있는지 궁금합니다. –

4

이 방법은 나뭇 가지 환경을 복제하지 않고 작동합니다.

+0

추가 객체를 인스턴스화 할 필요가 없으며 서비스 내에 "나뭇 가지"서비스를 삽입 할 수 있으므로 더 깨끗한 솔루션입니다. 슬프게도, Twig_Environment 클래스에는 인터페이스가 없습니다. – drakonli

관련 문제