ビューについて少し。
まず、全体のレイアウトは、app/Resources/views/ の中に layout.html.twig で、
ページ毎に異なる部分は、mogeBundle/Resources/views/の中で hello.html.twig で記述。
Twig には、テンプレートの継承機能があり、
layout.html.twigで以下のように書いたとし、
<!-- layout.html.twig --> {% block title %}Layout{% endblock %}
継承先のhello.html.twigで、
<!-- hello.html.twig --> {% block title %}Hello{% endblock %}
とすることで、titleブロックのオーバーライドが可能。
ちなみに、デフォルトで存在するレイアウトファイルの中身は以下のようになってる。
<!-- base.html.twig --> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>{% block title %}Welcome!{% endblock %}</title> {% block stylesheets %}{% endblock %} <link rel="shortcut icon" href="{{ asset('favicon.ico') }}" /> </head> <body> {% block body %}{% endblock %} {% block javascripts %}{% endblock %} </body> </html>
つまり、これを継承して、title, body, javascripts 等のブロックをオーバーライドすれば、OKっぽい。
おもしろい〜。
ちなみに、Twig は、デフォルトですべての出力をエスケープしてくれるらしいです。
0 コメント:
コメントを投稿