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を使えます。

関連

Date: 2015/05/25

Tags: codeigniter, twig