リソースをどのように使用するのか、なぜこのアプローチが非常に便利であるのかを説明したいと思います。
たまたま、Twigをテンプレートエンジンとして気に入ったのです。
それはちょうど私にそれを注ぐようなものです-最初にCodeIgniterで、次に私が少しクラックした拡張機能(記事の最後にあるリンク)を通してYiiと友達になりました
数千の優れた機能の1つは、次のようなテンプレートの継承です。
layout.twig
<html> <head><title>{% block title %}{% endblock %}</title></head> <body> <h1>, !</h1> {% block content %}{% endblock %} </body> </html>
index.twig
{% extends 'layout.twig' %} {% block title %} {% endblock %} {% block content %} ?{%endblock%}
その結果、index.twigをレンダリングするときに、タイトルを付けて、あいさつをより非公式にします。
これで、スクリプトとその他の部分を台無しにするのがいいでしょう。
私は次のようにします-css 、 img 、 jsフォルダーはassetフォルダー内にあり、これは既にテーマのあるフォルダー内にあります(cssとimgを別々に公開すると、cssの相対リンクが壊れます)。 メインテンプレートでは、これを行います。
{% set assetsDir = Yii.app.publishFile('assets') %} {% call Yii.app.clientScript.registerScriptFile( assetsDir~'/js/chosen.jquery.min.js' ) %} {% call Yii.app.clientScript.registerCssFile( assetsDir~'/css/screen.css', 'screen') %}
選択されたテーマに基づいた相対パスをサポートするために、publishFileがassetManagerのラッパーとして追加されました。 つまり Yii.app.publishFile( 'assets')の構築は、現在のトピックのカタログからアセットフォルダーを公開します-便利だと思います。
ある時点で、追加のスクリプトを特定のビューに接続することにしたので、その小枝ファイルでのみ実行します
{% call Yii.app.clientScript.registerScriptFile( assetsDir~'/js/myscript.js' ) %}
その結果、非常に読みやすい(とにかく)テンプレートが得られます-何かが接続されている場所がすぐにわかります。
layout.twig
{% set assetsDir = Yii.app.publishFile('assets') %} {% call Yii.app.clientScript.registerScriptFile( assetsDir~'/js/chosen.jquery.min.js' ) %} {% call Yii.app.clientScript.registerCssFile( assetsDir~'/css/screen.css', 'screen') %} <html> <head><title>{% block title %}{% endblock %}</title></head> <body> <h1>, !</h1> {% block content %}{% endblock %} </body> </html>
index.twig
{% extends 'layout.twig %} {% block title %} {% call Yii.app.clientScript.registerScriptFile( assetsDir~'/js/myscript.js' ) %} {% endblock %} {% block content %} ?{%endblock%}
コントローラーで$ this-> render( 'index')と出来上がりを取得します!
私にとって、このアプローチでは、ビューでリソースの接続を直接制御することが非常に重要です。
Nuance-別のテンプレートを展開するテンプレートでは、親テンプレートによって定義された変数は{%block%} {%endblock%}構造でのみ使用可能です
Yiiの使用済みtwig-extensionへのリンク: https : //github.com/yiiext/twig-renderer
確かに、私はそれを持っている、上で書いたように、壊れた-箱から出して、私はトピックと友達になりたくなかった、そして値を返さない手続きを呼び出して、構築するのが簡単
読みにくいより{% call procedurename() %}
{{ void( procedurename() ) }}, twig.