Twigテンプレートエンジンの使用方法とデータの投入について


  1. Twigのインストールとセットアップ: Twigを使用するには、まずPHPプロジェクトにTwigライブラリをインストールする必要があります。Composerを使用してインストールする場合は、以下のコマンドを実行します:

    composer require twig/twig

    インストール後、Twigを使用するために必要なファイルをロードする必要があります。適切なファイルをロードする方法は、プロジェクトの要件によって異なります。

  2. Twigテンプレートの作成: Twigテンプレートは、デザインと表示ロジックを分離するために使用されます。テンプレートファイルは通常、.twigの拡張子を持ちます。以下は基本的なTwigテンプレートの例です:

    <html>
    <head>
       <title>{{ title }}</title>
    </head>
    <body>
       <h1>Welcome, {{ name }}!</h1>
       <p>{{ content }}</p>
    </body>
    </html>

    テンプレート内の{{ }}ブロックは、データの挿入を示します。ブロック内の変数は、後で提供されるデータによって置き換えられます。

  3. データの投入: Twigテンプレートにデータを投入するには、テンプレートエンジンにデータを渡す必要があります。以下の例では、renderメソッドを使用してテンプレートをレンダリングし、データを渡しています:

    <?php
    require_once 'vendor/autoload.php';
    $loader = new \Twig\Loader\FilesystemLoader('/path/to/templates');
    $twig = new \Twig\Environment($loader);
    $template = $twig->load('template.twig');
    echo $template->render([
       'title' => 'My Blog',
       'name' => 'John Doe',
       'content' => 'This is a sample blog post.'
    ]);
    ?>

    上記のコードでは、Twigのファイルシステムローダーを使用してテンプレートを読み込み、レンダリングするデータを提供しています。

  4. コード例と応用: Twigは非常に柔軟なテンプレートエンジンであり、条件分岐、ループ、フィルタなどの機能をサポートしています。以下にいくつかのコード例を示します:

    • 条件分岐:

      {% if condition %}
       <p>This is displayed if the condition is true.</p>
      {% else %}
       <p>This is displayed if the condition is false.</p>
      {% endif %}
    • ループ:

      {% for item in collection %}
       <li>{{ item }}</li>
      {% endfor %}
    • フィルタ:

      <p>{{ content|truncate(100) }}</p>

    上記の例では、条件分岐、ループ、フィルタの基本的な使用方法を示しています。