1.はじめに
Smarty もいいけど twig もね。と言われたので twig を FuelPHP で使ってみようと思い実験。VirtualBox + Vagrant + ScotchBox 環境で実行しました。
ScotchBox の取得と、インストール方法は、以下のサイトに詳しいです。
https://box.scotch.io/
2.FuelPHP を、サーバーで動くようにします。
http://fuelphp.com/ から、FuelPHP1.8 をダウンロードして解凍したものをサーバーに転送します。当方は、これだけで動きました。
3.twig を使えるようにします。
/composer.json ファイルを編集して、"require" の項目に twig/twig" : "1.*" を追加します。以下の例では、最終行に追記しています。一個前の行の行末に、"," を付けるのを忘れないようにします。
"require": {
"php": ">=5.3.3",
"composer/installers": "~1.0",
"fuel/core": "1.8.*",
"fuel/auth": "1.8.*",
"fuel/email": "1.8.*",
"fuel/oil": "1.8.*",
"fuel/orm": "1.8.*",
"fuel/parser": "1.8.*",
"fuelphp/upload": "2.0.6",
"monolog/monolog": "1.5.*",
"phpseclib/phpseclib": "2.0.0",
"michelf/php-markdown": "1.4.0",
"twig/twig": "1.*"
},
4.cpmposer の実行
以下のコマンドを実行します。数分必要でしたが、2016/05/24 時点での最新の twig 1.24 がインストールされました。
php composer.phar update
6.config.php を更新
always_load に、parser パッケージを追加しします。
'always_load' => array(
'packages' => array(
'parser',
),
),
6.使ってみる
view の拡張子を .twig にします。view については、http://fuelphp.jp/docs/1.8/general/views.html が参考になります。
return View::forge('home/index.twig', $data);
面白いことに、拡張子に .twig を指定しないと、標準の方法で出力されるので、拡張子の書き方で出力方法を混在させられるようです。
7.twig 内で、FuelPHP の関数を使う
/fuel/packages/parser/classes/twig/fuel/extension.php の中に、twig で使える、FuelPHP の関数が記載されています。例えば Form::open は、form_open に置き換えられます。
<?php echo(Form::open(array('action'=>Uri::create('index'), 'method'=>'get'))); ?>
{{ form_open({'action':url('index'), 'method':'get'}) }}
8.twig の動作環境を設定するには
/fuel/app/config/parser.php に記載がありますので、こちらの twig 部分を変更します。
9.twig を機能拡張するには
以下に、書きました。
https://c5.yorozu-1.com/tech/fuelp/twig_extension