2013-06-13 4 views
1

이 더 토론 질문 :임베디드 컨트롤러는

당신은 서비스, 어쩌면 모델 및 템플릿으로 구성되어 번들의 구성 요소를 가지고 당신이 그것을 포함 할 수있는 쉬운 방법을 제공 할 감안할 때 기본 템플릿에

{{ acme_render_component({foo: 'bar'}) }} 

또는 메인 템플릿이 같은 임베디드 컨트롤러를 사용할 수 있도록하기로 결정 다음과 같습니다 :

{{ render(controller('AcmeBundle:CoolComponent:render', { 'foo': bar })) }} 

당신은 내부적으로 같은 템플릿을 렌더링하기 위해 도우미를 사용하는 나뭇 가지 확장 기능을 제공 할 수있다 사례가 다르게 동작하는 것 같습니다.
나뭇 가지 확장을 사용하면 모델을 채우고 템플릿에서 다시 가져 오기 위해 먼저 서비스를 사용할 수 있습니다.
컨트롤러를 사용하면 필요할 때마다 서비스를 실행할 수 있습니다.

차이점, 장점 또는주의 사항은 무엇입니까?
어느 쪽을 제공해야합니까?

답변

1

사용자 정의 Twig 확장을 사용하는 한 가지 이유는 성능입니다. Twig 템플릿에서 "렌더링"을 호출하면 Symfony 라이프 사이클 전체를 완전히 새로운 요청으로 처리 할 수 ​​있습니다.

+0

컨트롤러 내에서 렌더링 방법을 사용하지 않을 경우 나뭇 가지 확장을 포함 할 나뭇 가지 파일을로드하는 방법은 무엇입니까? – Sekai