先日、PHPでTwigを使ったときにハマったのでメモ。
まずは、Twigのインストール手順から使用方法までの流れを簡単に説明する。
はじめに、composerでTwigをインストールする。
composer require twig/twig
次に、下記のコードでTwigを利用したページの表示を試みる。
Twigファイルは、templatesディレクトリ内にindex.twigとして用意している。
<?php
require 'vendor/autoload.php';
// Twigテンプレートディレクトリ指定
$loader = new Twig_Loader_Filesystem(__DIR__.'/templates');
// Twigインスタンス化
$twig = new Twig_Environment($loader);
echo $twig->render('index.twig');
ここまでが、Webの記事でよくみられる使用方法だが、下記のエラーが発生した。
Twig_Loader_Filesystem not found
Twig_Loader_Filesystemクラスが存在しないとのエラーだ。
エラー解消法
先程のコードを下記のとおり修正する。
<?php
require 'vendor/autoload.php';
// Twigテンプレートディレクトリ指定
$loader = new \Twig\Loader\FilesystemLoader(__DIR__.'/templates');
// Twigインスタンス化
$twig = new \Twig\Environment($loader);
echo $twig->render('index.twig');
今回は古い記事を参考に書いたコードだったのでエラーが発生した様子。
どうやらTwigのバージョン2以降ではクラス構造が異なるようで、最後に紹介したコードに修正する必要があるようだ。