はじめての「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で使えるようになった。
必要なディレクトリを作成
ファイルを管理しやすいように、プロジェクト配下に templates と compilation_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
http://localhost:8000/index.php へアクセスして「Hello, World!」が表示されれば成功。
php -S localhost:8000
関連記事
アイデアノート > PHPでWebサイトを作る