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

twigとは
twig(ツイッグ)は、PHPで人気の、テンプレートエンジン。
Symfony(2007年)を開発した、Sensio labs社が2009年に開発。
何も考えずに開発すると、PHPとHTMLでスパゲッティ状態になるところ、twigを使うことで、PHPとHTMLを分離することができる。 つまり、ロジックとUIの分離ができ、メンテナンス性や開発速度の向上を図れる。
開発環境
macOS環境にて以下の通り、composerとphpがインストール済み。
$ 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をインストール
適当な場所に空のプロジェクトディレクトリを作成。そこのルートへ移動して、以下のコマンドを実行:
composer require twig/twig
これで twig
がPHPで使えるようになった。
必要なディレクトリを作成
ファイルを管理しやすいように、プロジェクト配下に
templates
と compilation_cache
ディレクトリを作成:
mkdir templates compilation_cache
テンプレートファイルを作成
templates
ディレクトリ内に
hello.html.twig
という名前のテンプレートファイルを以下内容で作成:
<html>
<body>
<p>Hello, {{ name }}!</p>
</body>
</html>
Twigの環境を設定
index.php
を作成し、というファイルにTwigの基本設定を記述した例です。
<?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テンプレートをレンダリングするコードを追加:
// ... 前のTwig設定コード ...
echo $twig->render('hello.html.twig', ['name' => 'World']);
結果をブラウザに表示
phpコマンドで、ローカルサーバーを起動:
php -S localhost:8000
http://localhost:8000/index.php
へアクセスして「Hello, World!」が表示されれば成功。

関連記事
- macOSにLaravelをインストールして開発環境を整える
- macOSで学ぶfind・grepの基本テクニック・実用例
- Raspberry Pi に Tomcat10 をインストールする
- Electronを動かしてHello world!表示するまで(macOS)
- nginxの設定 いろいろ