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統合
完成したテンプレートの例