Looking for twig Answers? Try Ask4KnowledgeBase
Looking for twig Keywords? Try Ask4Keywords

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

Official Twigインストールガイド

Twig PHP拡張モジュール(C言語で書かれています)もコンパイルしてインストールすることができ、PHPパッケージはいくつかの共通ルーチンを最適化するために自動的にそれを利用します。

前書き

SmartyDjangoJinjaなど、他のテキストベースのテンプレート言語にさらされている人は、 Twigで自宅で感じるはずです。これは、PHPの原則を守り、テンプレート環境に便利な機能を追加することで、 デザイナーとデベロッパーの両方にやさしいものです。

キー機能は次のとおりです...

  • Fast: Twigはテンプレートを平易に最適化されたPHPコードにコンパイルします。通常のPHPコードと比較したオーバーヘッドは最小限に抑えられました。
  • 安全: Twigには、信頼できないテンプレートコードを評価するサンドボックスモードがあります。これにより、ユーザーがテンプレートデザインを変更できるアプリケーションのテンプレート言語としてTwigを使用できます。
  • フレキシブル: Twigは柔軟なレクサーパーサによって動力を与えられます。これにより、開発者は独自のカスタムタグフィルタを定義し、独自のDSLを作成することができます。

小枝は、のような多くのオープンソースプロジェクトで使用されているsymfonyのDrupalはeZPublish同様のように、それをサポートしているし、多くのフレームワークスリムYiiのLaravelCodeIgniterのサイレックスKohanaのちょうど少数を示すために- 。

インストール

Twigをインストールするには、 Composer経由でインストールすることをお勧めします。

PHP 5.xユーザーの場合

composer require "twig/twig:~1.0"
 

PHP 7.xユーザーの場合

composer require "twig/twig:~2.0"
 

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 %}