はじめての「twig」基本的な使い方を解説

はじめての「twig」基本的な使い方を解説
はじめての「twig」基本的な使い方を解説

twigとは

twig(ツイッグ)は、PHPで人気の、テンプレートエンジン。

Symfony(2007年)を開発した、Sensio labs社が2009年に開発。

何も考えずに開発すると、PHPとHTMLでスパゲッティ状態になるところ、twigを使うことで、PHPとHTMLを分離することができる。 つまり、ロジックとUIの分離ができ、メンテナンス性や開発速度の向上を図れる。

開発環境

macOS環境にて以下の通り、composerとphpがインストール済み。

zsh
$ composer --version
Composer version 2.6.6 2023-12-08 18:32:26

$ php --version
PHP 8.3.2 (cli) (built: Jan 16 2024 13:46:41) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.3.2, Copyright (c) Zend Technologies
    with Zend OPcache v8.3.2, Copyright (c), by Zend Technologies

ComposerはPHPの依存関係管理ツール

プロジェクトに必要なライブラリやパッケージを管理し、インストールや更新を容易に行える。

Twigを使って"Hello, World!"をブラウザに表示するまで

まずは使って twig の感触と便利さを体験する。

Composerを使用してTwigをインストール

適当な場所に空のプロジェクトディレクトリを作成。そこのルートへ移動して、以下のコマンドを実行:

bash
composer require twig/twig

これで twig がPHPで使えるようになった。

必要なディレクトリを作成

ファイルを管理しやすいように、プロジェクト配下に templatescompilation_cache ディレクトリを作成:

zsh
mkdir templates compilation_cache

テンプレートファイルを作成

templates ディレクトリ内に hello.html.twig という名前のテンプレートファイルを以下内容で作成:
twig
<html>
    <body>
        <p>Hello, {{ name }}!</p>
    </body>
</html>

Twigの環境を設定

index.php を作成し、というファイルにTwigの基本設定を記述した例です。
index.php
<?php
require_once './vendor/autoload.php';

$loader = new \Twig\Loader\FilesystemLoader('./templates');
$twig = new \Twig\Environment($loader, [
    'cache' => './compilation_cache',
    'auto_reload' => true,
]);

Twigがテンプレートをコンパイルした後のキャッシュを ./compilation_cache へ格納される。キャッシュ機能を使用しない場合は、このオプションを省略する。

Twigテンプレートをレンダリング

最後に、index.php にTwigテンプレートをレンダリングするコードを追加:

index.php
// ... 前のTwig設定コード ...

echo $twig->render('hello.html.twig', ['name' => 'World']);

結果をブラウザに表示

phpコマンドで、ローカルサーバーを起動:

zsh
php -S localhost:8000
http://localhost:8000/index.php へアクセスして「Hello, World!」が表示されれば成功。

関連記事

最後までご覧いただきありがとうございます!

▼ 記事に関するご質問やお仕事のご相談は以下よりお願いいたします。
お問い合わせフォーム