twigテンプレートの簡単な構文の例
2563 ワード
TWIGテンプレートの主な特徴.効率:Twigはテンプレートを最適化したPHPファイルにコンパイルし、元のPHPコードと比較して性能損失は非常に小さい. セキュリティ:Twigは砂箱(sandbox)モードを使用してテンプレート内の信頼されていないコードを実行します.これにより、Twigを、ユーザがテンプレートを変更できるアプリケーションのテンプレートエンジンとして選択することができる. 柔軟性:Twigは、開発者が独自のラベル(tags)とフィルタ(filters)を定義し、独自の分野固有言語(DSL、domain specific language)を作成できる柔軟な構文解析器と構文解析器を備えています.
1. spaceless
≪アクション|Actions|emdw≫:ページ内のラベルとラベルの間のスペースを削除します.
2.変数を出力
3.if(変数が存在するか否かを判断する)
4.条件文
orとand
定義するかどうかを判断する
nullかどうかを判断する
falseかどうかを判断する
5.サイクル
配列によるkey遍歴
配列のkey,valueで巡る
6. autoescape
文字列を正当な指定データに安全に処理する(true有効|false無効)
7. block
プレースホルダに相当し、別のテンプレートに継承されると、このモジュールを呼び出すことができます.定義時の内容は継承されたテンプレートではデフォルトでは表示されず、{{parent()}}を使用して表示できます.ブロック名には英数字と下線を使用できます.ダッシュ(-)は使用できません.
8. extends
phpのようなextendsでは、多重継承はサポートされず、1つの拡張テンプレート{%include%}:テンプレート{%extends%}:拡張テンプレート{%embed%}xxx{%endembed%}:includeとextendsの結合体{%macro%}xxx{%endmacro%}:マクロを定義して複数回呼び出すように定義します.PHP関数の定義と変わりません{%from aaa import bbb as ccc%}:指定したテンプレートからマクロをインポートし、別名を設定します.
まとめ:TWIGの使用はPHPと非常に似ており、何度も使用すると一般的なページ入力要件を迅速に解決できます.
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と非常に似ており、何度も使用すると一般的なページ入力要件を迅速に解決できます.