TwigはPHP用の無料のオープンソーステンプレート エンジンです。その構文はJinjaとDjangoテンプレートに由来しています。[ 3 ] BSD ライセンスでライセンスされており、Fabien Potencier によってメンテナンスされています。最初のバージョンはArmin Ronacherによって作成されました。Symfonyはバージョン 2 以降、デフォルトのテンプレート エンジンとして Twig のサポートをバンドルしています。[ 4 ]
Nunjucksテンプレートエンジンも同じテンプレート言語を使用しているため、Nunjucksは以下のツールでもサポートされています。
Twig は、以下の統合開発環境でサポートされています。[ 3 ]
Twigは以下のテキストエディタでサポートされています。
Twigでは、3種類の区切り文字が定義されています。
{{ ... }}変数の内容や式の評価結果を出力するために使用される。[ 7 ] : 585{# ... #}テンプレートにコメントを追加するために使用されます。これらのコメントはレンダリングされたページには含まれません。{% ... %}forループなどのステートメントを実行するために使用されます。[ 7 ] : 585例: {%setfoo='bar'%}割り当てる。[ 8 ]{%ifiisdefinedandi==1%} ... {%endif%}: 状態。{%foriin0..10%} ... {%endfor%}: ループ内のカウンター。基本の PHP とは異なり、Twig の変数はドル記号で始まりません。[ 7 ] : 576アポストロフィ (') はエスケープ文字です。
反復配列を作成するには:
{% set myArray = [ 1 , 2 ] %}連想配列:
{% set myArray = { 'key' : 'value' } %}演算子の優先順位は、[ 3 ]優先順位の低いものから高いものへと続きます。
フィルターは、パイプで区切って式の後に配置されると、式に対して何らかの処理を行います。例: [ 5 ]
capitalize: 文字列の最初の文字を大文字に変更します。upper: 文字列全体を大文字に変換します。first配列の最初の行を表示します。length: 可変サイズを返します。loop現在のループ情報が含まれています。例えば、loop.index既に発生した反復回数に対応します。{{ path(app.request.attributes.get('_route'), app.request.attributes.get('_route_params')) }}{{ app.request.server.get('SERVER_NAME') }}。以下の例は、Twigの基本的な機能の一部を示しています。
{% extends "base.html" %} {% block navigation %} < ul id = "navigation" > {% for item in navigation %} < li > < a href = " {{ item.href }} " > {% if item.level == 2 %} {% endif %} {{ item.caption | upper }} </ a > </ li > {% endfor %} </ ul > {% endblock navigation %}TwigはPHPエコシステムにおいて広く採用されているテンプレートエンジンです。Symfonyフレームワークのデフォルトのテンプレート言語であり、以下のような複数のコンテンツ管理システム(CMS)やアプリケーションにも統合されています。
Twigは、安全で読みやすいテンプレートが重要な多くのカスタムPHPアプリケーションでも採用されています。TwigはJinjaやDjangoのテンプレートと似ているため、Pythonなどの類似のエコシステムから来た開発者にも馴染みやすいものとなっています。