2017-11-16 1 views
0

제 레이아웃 (나뭇 가지)에 Middleware authentication에서 값을 검색하고 싶습니다. 그것은 좋은 방법입니다,Zend expressive - 레이아웃

'twig' => [ 
     'globals' => [ 
      // Variables to pass to all twig templates 
      'auth' => (new \Zend\Authentication\AuthenticationService())->hasIdentity(), 
     ], 
    ], 

그리고 레이아웃

{% if auth %} 
    Connect 
{% else %} 
    Not connect 
{% endif %} 

이 코드는 작동 default.html.twig :하지만,

은 내가 templates.global.pĥp에 넣으면?

감사합니다.

답변

2

좋은 방법은 아닙니다. 우선, config 파일을 사용하여 글로벌 템플릿 데이터를 설정하는 것은 정적 데이터를위한 것입니다. 구성을 캐싱하려면 구성에서 서비스를 만들면 실패합니다. zend 경매 서비스에 대해서는 잘 모릅니다 만, 서비스 관리자 또는 사용중인 다른 컨테이너에서 가져 오는 것이 좋습니다. 이렇게하면 응용 프로그램의 모든 곳에서 동일한 서비스가 사용되고 있는지 확인할 수 있습니다.

템플릿에 필요한 공통 변수 또는 서비스의 경우 TemplateRenderer 주위에 래퍼가 있습니다. 그래서 원래의 템플릿 렌더러를 호출하는 대신, 나는 자신의 클래스를 호출하고 거기에서 공통 데이터로 템플릿을 채 웁니다.

TemplateRendererInterface::addDefaultParam으로 기본 매개 변수를 삽입 할 수도 있습니다. 다른 미들웨어에서는 templaterenderer를 주입하고 원하는 기본 데이터를 설정 한 다음 나중에 템플릿에 액세스 할 수 있습니다.

+0

테스트 해 보겠습니다. 고맙습니다 ! – Flo

관련 문제