CodeIgniter 3.0でTwigを使う
時代はTwigです
あのEC-CUBEもバージョン3からテンプレートエンジンをTwigに変更します。
土曜日にあったOSC Nagoyaで教えてもらったのですが、実はTwigには、配列もオブジェクトもドット(.)で表現できるという圧倒的な優位性がありました。
Twigでは$foo['bar']
も$foo->bar
も$foo->bar()
も以下のように表現できます。
{{ foo.bar }}
すっきりしてますね。
ということで、CodeIgniterでもTwigを使いたいと思います。
CodeIgniter Simple and Secure Twig
CodeIgniterでTwigを簡単に使うために「CodeIgniter Simple and Secure Twig」というツールを作成しました。
ただし、これは既存のPHPテンプレートを簡単に置き換えできるようにしたシンプルな実装です。
規模が大きくなる場合やもっと機能が欲しい場合は、https://gitlab.com/david-sosa-valdes/ci-twig を見るといいかも知れません。
インストール方法
Composerでインストールしてください。
$ cd /path/to/codeigniter/
$ composer require kenjis/codeigniter-ss-twig:1.0.x@dev
$ php vendor/kenjis/codeigniter-ss-twig/install.php
これで完了です。
やってることは、TwigをComposerでインストールし、CodeIgniter用のTwigライブラリを以下にコピーしているだけです。
codeigniter/
└── application/
└── libraries/
└── Twig.php
ということで、何をしているかは上記のTwig.php
を見ればすべてわかります。
使い方
Twigライブラリをロードします。
$this->load->library('Twig');
以下でテンプレート(views/welcome.twig
)がレンダリングされます。
(2016-01-26 追記) メソッド名を更新しました。
$this->twig->display('welcome', $data);
これだけです。
CodeIgniterのヘルパーについて
現在、以下のヘルパーが使えるようになっています。一部のヘルパーではエスケープ処理を追加して安全にしてあります。
- base_url
- site_url
- form_open
- form_close
- form_error
- set_value
- form_hidden
- anchor
サンプル
実際のTwigテンプレートを見たい場合は、以下のアプリの*.twig
ファイルを参照願います。
なお、このアプリのコードレビューも募集しています。
まとめ
- 時代はTwigです。
- CodeIgniter Simple and Secure Twigを使うと簡単にCodeIgniter 3.0でTwigを使えます。
関連
- CodeIgniter 3.0でPHPUnitを使う
- CodeIgniter 3.0のアプリをコードレビューしてください
- Codeigniter 3.0でマイグレーションをCLIから操作するCli for CodeIgniter
- Codeigniter 3.0をコマンド一発でインストールするCodeIgniter Composer Installer
- 2015年最新PHPフレームワーク(9つ)のベンチマーク
- CodeIgniter 3のライセンスがMITライセンスに変更され、いわゆるライセンス問題は完全に解消
- CodeIgniterの新刊『CodeIgniter Web Application Blueprints』が出てました
Date: 2015/05/25