ホームページ >バックエンド開発 >PHPチュートリアル >Twigのタグ学習(中国語)その1_PHPチュートリアル

Twigのタグ学習(中国語)その1_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-13 17:48:011096ブラウズ

Twig はシンプルでありながら強力なテンプレートです。私は SF を学んでいるので、見てください。

この記事の出典 http://twig.sensiolabs.org/doc/tags/index.html


現在サポートされているタグには

が含まれます

マクロフィルターセットがブロックを拡張する場合、スペースレスの自動エスケープを使用してインポートを含め、生のフラッシュを実行します

twigはhtmlで3種類に分かれています

{{...}} 変数を直接出力します


{#...#} コメントタグ


{%...%} コマンドタグは私たちが学ぶ必要があるものです


タグ用
これは最も単純なループです。

配列ベースのループ


メンバー


    {ユーザー % 中のユーザーの %}
                                                                                                                     {% 終了の %}

メンバー



    {ユーザー中ユーザーの%}
                                                                                                              {% 終了用 %}

数値に基づくループの場合、0 ~ 10 (11 個の数値) がここで出力されるという事実に特別な注意を払う必要があります。



{0..10 % の私に対する%} * * {{ 私 }}

{% 終了の %}

{% for i in 0..10 %}

* {{ 私 }}
{% 終了用 %}

文字ベースのループ

{% 'a'..'z' の文字 %}

* {{ 文字 }}

{% 終了の %}

{% 'a'..'z' の文字 %}
* {{ 文字 }}
{% 終了用 %}
ループ本体内の変数



変数名ループインデックスループ数(1から開始)ループ数(0から開始)残りループ数(最小値は1)残りループ回数(最小値は0)初めてループするときに true を返します最後のループ時に true を返すループ総数ループされる配列
説明
loop.index0
loop.revindex
loop.revindex0
ループファースト
ループ.ラスト
ループの長さ
ループ.親


loop.length、loop.revindex、loop.revindex0、loop.last これらの値は、ループが PHP 配列または Countable インターフェイスを実装するクラスである場合にのみ有効です。


条件を追加します
PHP とは異なり、break ステートメントと continue ステートメントはループ内でサポートされていません。次のように、フィルターを介して一部のループのみをスキップできます。


    {user.active % の場合、ユーザー内のユーザーの%}
                                                                                                                     {% 終了の %}

    {user.active % の場合、ユーザー内のユーザーの%}
                                                                                                              {% 終了用 %}



その他の支店
users が空の配列の場合、見つかったユーザーは出力されません。

    {ユーザー % 中のユーザーの %}
                                                                                                                {% 他 %}
                                                                                                              {% 終了の %}

    {ユーザー中ユーザーの%}
                                                                                                          {% 他 %}
                                                                                                {% 終了用 %}





キーによるサイクリング

メンバー


    {ユーザーのキーの%|キー %}
                                                                                                        {% 終了の %}

メンバー


    {ユーザーのキーの%|キー %}

                                                                                                        {% 終了用 %}

キー、値によるループ


メンバー


    {% はキー、ユーザーはユーザー %}
                                                                                                                       {% 終了の %}

メンバー



    {% はキー、ユーザーはユーザー %}
                                                                                                                   {% 終了用 %}


タグの場合

言うまでもなく、例 {% if users %} を見てください


    {ユーザー中ユーザーの%}
  • {{ user.username|e }}
  • {% endfor %}
{% endif %}

{% if kenny.sick %}
ケニーは病気です
{% elseif kenny.dead %}
ケニーを殺したのよ
{% 他 %}
ケニーは大丈夫のようです --- 今のところ
{% endif %}
{% ユーザーの場合 %}

    {ユーザー数 % のユーザー数 %}

  • {{ user.username|e }}
  • {% endfor %}


{% endif %}

{% if kenny.sick %}
ケニーは病気です
{% elseif kenny.dead %}
ケニーを殺したのはこの野郎!!!
{% 他 %}
ケニーは大丈夫のようです --- 今のところ
{% endif %}



マクロタグ
マクロ (マクロタグ) は他の言語の関数に似ており、HTML タグを埋めるためによく使用されます。 以下は
をレンダリングする例です。


{% macro input(name, value, type, size) %} 
     
{% endmacro %} 
{% macro input(name, value, type, size) %}
   
{% endmacro %}
macro与函数的不同之处在于:

1、参数的默认值是通过macro块内部的 default过滤器来定义的。

2、参数总是可选的。

另外,就跟php函数一样,macro内部是无法使用外部的变量的。但你可以传递一个特殊变量_context作为参数来获取整个内容。

macro可以被定义在任何的模板内,但在你使用之前需要使用 imported


{% import "forms.html" as forms %} 
{% import "forms.html" as forms %}然后就可以这样使用了


{{ forms.input('username') }}

 

{{ forms.input('password', null, 'password') }}

 

{{ forms.input('username') }}


{{ forms.input('password', null, 'password') }}

如果你要在定义macro的模板里使用,就不需要imported 可以使用特殊变量_self


{{ _self.input('username') }}

 

{{ _self.input('username') }}


如果你要定义一个macro里 包含另一个macro,并且两个macro在同一个文件里,可以使用特殊变量_self


{% macro input(name, value, type, size) %} 
   
{% endmacro %} 
 
{% macro wrapped_input(name, value, type, size) %} 
   

 
        {{ _self.input(name, value, type, size) }} 
   
 
{% endmacro %} 
{% macro input(name, value, type, size) %}
 
{% endmacro %}

{% macro wrapped_input(name, value, type, size) %}
   


        {{ _self.input(name, value, type, size) }}
   

{% endmacro %}
如果两个macro在不同的文件里,你需要使用import


{# forms.html #} 
 
{% macro input(name, value, type, size) %} 
   
{% endmacro %} 
 
{# shortcuts.html #} 
 
{% macro wrapped_input(name, value, type, size) %} 
    {% import "forms.html" as forms %} 
   

 
        {{ forms.input(name, value, type, size) }} 
   
 
{% endmacro %} 
{# forms.html #}

{% macro input(name, value, type, size) %}
 
{% endmacro %}

{# shortcuts.html #}

{% macro wrapped_input(name, value, type, size) %}
    {% import "forms.html" as forms %}
   


        {{ forms.input(name, value, type, size) }}
   

{% 終了マクロ %}


フィルタータグ
ブロック全体にフィルターを適用するだけです


{% フィルター上位 %}
このテキストは大文字になります
{% エンドフィルター %}
{% フィルタ上部 %}
このテキストは大文字になります
{% エンドフィルター %}
{% フィルターを低くする|エスケープ %}
テキスト {% エンドフィルター %}

jiaochangyunさんのコラムより抜粋

http://www.bkjia.com/PHPjc/478461.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/478461.html技術記事 Twig はシンプルでありながら強力なテンプレートです。私は SF を学んでいるので、見てください。 この記事のソース http://twig.sensiolabs.org/doc/tags/index.html 現在サポートされているタグには、if マクロ フィルターが含まれます...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。