twigテンプレートの簡単な構文の例

2563 ワード

TWIGテンプレートの主な特徴.
  • 効率:Twigはテンプレートを最適化したPHPファイルにコンパイルし、元のPHPコードと比較して性能損失は非常に小さい.
  • セキュリティ:Twigは砂箱(sandbox)モードを使用してテンプレート内の信頼されていないコードを実行します.これにより、Twigを、ユーザがテンプレートを変更できるアプリケーションのテンプレートエンジンとして選択することができる.
  • 柔軟性:Twigは、開発者が独自のラベル(tags)とフィルタ(filters)を定義し、独自の分野固有言語(DSL、domain specific language)を作成できる柔軟な構文解析器と構文解析器を備えています.

  • 1. spaceless
    ≪アクション|Actions|emdw≫:ページ内のラベルとラベルの間のスペースを削除します.
    {% spaceless %}
    Bigood.com
    Bigood.com
    {% endspaceless %}
    

    2.変数を出力
    {{ user.name }}
    {{ user['name'] }}
    

    3.if(変数が存在するか否かを判断する)
    {% if user is defined %}
    {{ user.name }}
    {% else %}
    '     ~'
    {% endif %}
    

    4.条件文
    orとand
    {% if a == '1' and b == '2' %}'true'{% endif %}
    {% if a == '1' or b == '2' %}'true'{% endif %}
    

    定義するかどうかを判断する
    {% if user is not defined %}
        'user     '
    {% else %}
    {{ user.anme }}
    {% endif %}
    

    nullかどうかを判断する
    {% if var is null %}
        {# do something #}
    {% endif %}
    

    falseかどうかを判断する
    {% if var is sameas(false) %}
    'false'
    {% else %}
    'true'
    {% endif %}
    

    5.サイクル
    配列によるkey遍歴
    {% for key in users|keys %}
    {{ key }}
    {% endfor %}
    

    配列のkey,valueで巡る
    {% for index, user in users %}
        {{ index }}:{{ user.id }}
    {% endfor %}
    

    6. autoescape
    文字列を正当な指定データに安全に処理する(true有効|false無効)
    {% set var = 'Bigood.com' %}
    {% autoescape true %}
        {{ var }}         {#            #}
        {{ var|raw }}     {#     html         #}
        {{ var|escape }}  {#            #}
    {% endautoescape %}
    

    7. block
    プレースホルダに相当し、別のテンプレートに継承されると、このモジュールを呼び出すことができます.定義時の内容は継承されたテンプレートではデフォルトでは表示されず、{{parent()}}を使用して表示できます.ブロック名には英数字と下線を使用できます.ダッシュ(-)は使用できません.
    {% block header %}
    {% endblock %}
    

    8. extends
    phpのようなextendsでは、多重継承はサポートされず、1つの拡張テンプレート{%include%}:テンプレート{%extends%}:拡張テンプレート{%embed%}xxx{%endembed%}:includeとextendsの結合体{%macro%}xxx{%endmacro%}:マクロを定義して複数回呼び出すように定義します.PHP関数の定義と変わりません{%from aaa import bbb as ccc%}:指定したテンプレートからマクロをインポートし、別名を設定します.
    {% extends 'base.twig' %}
    

    まとめ:TWIGの使用はPHPと非常に似ており、何度も使用すると一般的なページ入力要件を迅速に解決できます.