Symfoware

Symfowareについての考察blog

CodeIgniter 3でTwigテンプレートエンジンを使用する

CodeIgniter
http://www.codeigniter.com/

テンプレートエンジンも含まれてますが、複雑な処理には向いていません。

Twig
このテンプレートエンジンが人気のようなので、
CodeIgniterと組み合わせて使う方法を調べてみます。



Composer



Twigのインストールには、Composerを使用することにします。
EC2 + PHPで構築したサイトにアップロードしたファイルをAmazonS3に保存する

こちらの「AWS SDK for PHP」と同様の手順でComposerをインストール。


$ cd /tmp
$ curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer








Twig



CodeIgniterのapplictionフォルダに「composer.json」というファイルを作成。
以下の内容を記載します。


{
    "require": {
        "twig/twig" : "1.*"
    }
}




コンソールでapplicationフォルダに移動。
以下のコマンドを実行し、Twigのインストールを行います。


$ composer install




実行すると、applicationフォルダに「vendor」というフォルダが作成され、
その中にtwigのモジュールがダウンロードされています。

同時に、vendor/autoload.phpも自動作成されます。
このファイルをロードするため、「application/config/config.php」を編集。
「composer_autoload」の項目を「TRUE」に変更しておきます。


  1. $config['composer_autoload'] = TRUE;




※参考
CodeIgniter 3でComposer(コンポーザー)のautoload




簡単なサンプル



とりあえず使ってみます。
application/controller/Sample.phpを作成。以下のコードを記載しました。


  1. <?php
  2. class Sample extends CI_Controller {
  3.     public function index(){
  4.         
  5.         // テンプレートを配置しているフォルダを指定
  6.         // 今回はapplication/views
  7.         $loader = new Twig_Loader_Filesystem(VIEWPATH);
  8.         
  9.         // オプションを指定して、twigインスタンス生成
  10.         $twig = new Twig_Environment($loader, array('cache' => APPPATH.'/cache/twig', 'debug' => true));
  11.         
  12.         // テンプレート読み込み
  13.         $template = $twig->loadTemplate('twig.html');
  14.         
  15.         // 表示
  16.         $view_data = array('test_value' => '日本語でこんにちは');
  17.         $this->output->set_output($template->render($view_data));
  18.         
  19.     }
  20. }





呼び出すapplication/view/twig.htmlはこんなかんじです。


  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4.     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  5.     <title>Twigサンプル</title>
  6. </head>
  7. <body>
  8. <p>{{ test_value }}</p>
  9. </body>
  10. </html>





うまく動いてくれました。

611_01.png



続きはこちら。

CodeIgniter 3でTwigテンプレートエンジンを使用する その2
関連記事

テーマ:プログラミング - ジャンル:コンピュータ

  1. 2015/04/05(日) 16:50:13|
  2. PHP
  3. | トラックバック:0
  4. | コメント:0
  5. | 編集