CodeIgniter 2でのTwigテンプレートの統合

CodeIgniterロゴ小枝のロゴ

CodeIgniterは、エントリのしきい値が低い、小さくて高速なphpフレームワークです。 Yii、Symfony、Kohanaなどの有力者がいますが、理由は不明ですが、すべてのプロジェクトを書いています。 すべて問題ありませんが、CIには2つの非常に具体的な問題があります。ActiveRecordの未開発とテンプレートエンジンの欠如です。 2番目の問題を解決します。



SMARTYではなくTwigを使用する理由



私にとって、SMARTYは大きくて、古くて、怖いものです。 一方、強力で長年の実績があります。 TwigはSymfonyに組み込まれているため、若く、エネルギッシュで信頼性が高く、このフレームワークにはかなり大きく活発なコミュニティがあります。 昨日、SMARTYが明らかに勝ったパフォーマンス比較を実施しましたが、Twigを試してみることにしました。



一般的な情報を終えたら、ポイントに行きましょう-TwigをCodeIgniter 2に統合するための3つの簡単なステップ:



1. TwigファイルをCIに転送します



gitHubからTwigの安定バージョンを取得します

github.com/fabpot/twig

アーカイブの内容を抽出し、フォルダーの名前をTwigに変更し、CIのapplication / libraryフォルダーに転送します。



2. TwigをCIに接続します



CIの同名のTwigライブラリの安定版を使用します。これにより、コントローラーからTwigを呼び出すことができます。

github.com/jamiepittock/codeigniter-twig

アーカイブからアプリケーションフォルダーを取得し、CIのアプリケーションフォルダーにコピーします。



3. Twigパスを構成する



application / config / twig.phpを開き、設定に従ってパスを変更します。 たとえば、キャッシュパスを変更する必要がありました

$config['cache_dir'] = BASEPATH.'cache/twig';
      
      







4(オプション)。 Twigテンプレートのキャッシュと自動更新を有効にします



ステップ2のアプリケーション/ライブラリ/ Twig.phpを開きます。

交換

 $this->_twig = new Twig_Environment($loader
      
      







 $twig_env_options = array( 'auto_reload' => true, 'cache' => $this->_cache_dir, ); $this->_twig = new Twig_Environment($loader, $twig_env_options
      
      







できた



接続 (各関数でコードを複製しないように、コントローラーコンストラクターでこれを行うことをお勧めします)

 $this->load->library('twig');
      
      







テンプレートの表示は、組み込みCIに非常に似ています。

ビルトイン

 $this->load->view('forms/login_form', $data);
      
      





小枝

 echo $this->twig->render('forms/login_form.twig', $data);
      
      





$data



連想配列



関連資料:

Twigドキュメント

Twig環境オプション

Symfony 1.4のTwig統合

完成したテンプレートの例



All Articles