twig チュートリアル
小枝を使い始める
サーチ…
備考
このセクションでは、twigの概要と、なぜ開発者がそれを使いたいのかを概説します。
それはまた、小枝の中の大きな科目を言及し、関連するトピックにリンクする必要があります。小枝のドキュメントは新しいので、それらの関連トピックの初期バージョンを作成する必要があります。
基本的なAPIの使用法
また、ソースコードをダウンロードしてプロジェクトのディレクトリに配置することでインストールすることもできます。しかし、作曲家を使うことには多くの利点があります。
require '/path/to/lib/Twig/Autoloader.php';
Twig_Autoloader::register();
$loader = new Twig_Loader_Filesystem('/path/to/templates');
$options = array(
'strict_variables' => false,
'debug' => false,
'cache'=> false
);
$twig = new Twig_Environment($loader, $options);
新しいTwig_Environment
インスタンスを作成するときは、オプションの配列をコンストラクタの2番目の引数として渡すことができます。使用可能なオプションのリストは次のとおりです。
- debug( boolean 、デフォルトは
false
)
trueに設定すると、生成されたテンプレートには生成されたノードを表示するために使用できる
__toString()
メソッドがあります。
- charset( 文字列 、デフォルトの
utf-8
)
テンプレートで使用される文字セットです。
- base_template_class( 文字列 、デフォルトは
Twig_Template
)
生成されたテンプレートに使用する基本テンプレートクラス。
- cache( 文字列または
false
、デフォルトはfalse
)
コンパイルされたテンプレートを格納する絶対パス。キャッシングを無効にする場合はfalse(デフォルト)。
- auto_reload( boolean 、デフォルトはdebugから継承)
Twigで開発する場合は、ソースコードが変わるたびにテンプレートを再コンパイルすると便利です。 auto_reloadオプションの値を指定しないと、デバッグ値に基づいて自動的に決定されます。
- strict_variables( boolean 、デフォルトは
false
)
falseに設定すると、無効な変数(存在しない変数や属性/メソッド)を静かに無視し、null値で置き換えます。 trueに設定すると、代わりにTwigが例外をスローします。
- autoescape( 文字列またはブール値 、デフォルトは
true
)
trueに設定すると、デフォルトですべてのテンプレートに対してHTML自動エスケープが有効になります。
Twig 1.8以降では、(html、js、falseを無効にする)エスケープ戦略を設定することができます。
Twig 1.9以降では、(css、url、html_attr、またはテンプレート "filename"を取り、使用するエスケープ戦略を返すPHPコールバックを使用するようにエスケープ戦略を設定できます。コールバックは回避する関数名にすることはできません組み込みエスケープ戦略との衝突)。
Twig 1.17以降、ファイル名のエスケープ戦略は、テンプレートファイル名の拡張子に基づいてテンプレートに使用するエスケープ戦略を決定します(コンパイル時に自動エスケープが実行されるため、この戦略では実行時にオーバーヘッドが発生しません)。
- 最適化( 整数 、デフォルト
-1
)
適用する最適化を示すフラグ。
set to -1 to enabled all optimalizations
set o 0 to disable all optimalitazations
Twig PHP拡張モジュール(C言語で書かれています)もコンパイルしてインストールすることができ、PHPパッケージはいくつかの共通ルーチンを最適化するために自動的にそれを利用します。
Twigとは何ですか?
Twigは最適化されたPHPコードにコンパイルするテンプレート言語です。これは、主にHTMLの出力に使用されますが、他のテキストベースの形式を出力するために使用することもできます。これは、任意のPHPプロジェクトに簡単に統合できるスタンドアロンコンポーネントです。
それは多くの優れた機能を提供します:
- HTMLの自動エスケープ(XSSの防止に役立ちます)
- テンプレートを念頭に置いて設計された構文(Djangoテンプレートに基づく)
- テンプレートの継承
- マクロ
Twigの構文の例:
{% extends "base.html" %}
{% block sidebar %}
{{ parent() }}
<span>Sidebar content specific to this page</span>
{% endblock sidebar %}
{% block body %}
<p>Select an item:</p>
<ul>
{% for item in list %}
<li><a href="/items/{{ item.id }}">{{ item.name }}</a>
{% else %}
<li>No items yet.
{% endfor %}
</ul>
{% endblock body %}
前書き
Smarty 、 Django 、 Jinjaなど、他のテキストベースのテンプレート言語にさらされている人は、 Twigで自宅で感じるはずです。これは、PHPの原則を守り、テンプレート環境に便利な機能を追加することで、 デザイナーとデベロッパーの両方にやさしいものです。
キー機能は次のとおりです...
- Fast: Twigはテンプレートを平易に最適化されたPHPコードにコンパイルします。通常のPHPコードと比較したオーバーヘッドは最小限に抑えられました。
- 安全: Twigには、信頼できないテンプレートコードを評価するサンドボックスモードがあります。これにより、ユーザーがテンプレートデザインを変更できるアプリケーションのテンプレート言語としてTwigを使用できます。
- フレキシブル: Twigは柔軟なレクサーとパーサによって動力を与えられます。これにより、開発者は独自のカスタムタグとフィルタを定義し、独自のDSLを作成することができます。
小枝は、のような多くのオープンソースプロジェクトで使用されているsymfonyの 、 Drupalは 、 eZPublish同様のように、それをサポートしているし、多くのフレームワークスリム 、 Yiiの 、 Laravel 、 CodeIgniterの 、 サイレックスとKohanaのちょうど少数を示すために- 。
インストール
Twigをインストールするには、 Composer経由でインストールすることをお勧めします。
PHP 5.xユーザーの場合
composer require "twig/twig:~1.0"
PHP 7.xユーザーの場合
composer require "twig/twig:~2.0"