BETA

FuelPHP Twig + Template 設定

投稿日:2018-12-12
最終更新:2018-12-13

今回久々にFuelでTwigを使用することになったので、設定周りのメモ
設定した後ってあまりいじる事ないから細かいところ忘れてまた調べたりしちゃうのを減らしたい

環境

  • docker
  • FuelPHP 1.8
  • Twig 2.5.0 (Twig version 2を利用するにはPHP7以上が必要)

Twigの設定

手順

  1. composer.json 設定追加する
     "require": {  
         "php": ">=5.3.3",  
         "fuelphp/upload": "2.0.6",  
         "twig/twig" : "2.5.*"  
     },  
  2. composerを更新
    // コンテナに入る  
    docker exec -it {コンテナ名} bash  
    // composerから追加  
    composer update  
  3. config.phpでParserパッケージを有効化
     'always_load'  => [  
         'packages'  => [  
             'parser' // 追加  
         ],  
     ]  
  4. Twigのバージョン表示
    <p> {{ constant('Twig_Environment::VERSION') }}</p>  

テンプレート設定

手順

  1. テンプレートベースコントローラを作成

    // fuel/app/classes/controller 以下にクラスを作成  
    <? php  
    class Controller_Base extends Controller_Template  
    {  
     // デフォルトだとfuel/app/views/template.php  
     public $template = 'template.twig';  
    
     public function before()  
     {  
         parent::before();  
         // ヘッダに設定するviewファイルを指定  
         $this->template->header = View_Twig::forge('templates/header');  
         // フッタに設定するviewファイルを指定  
         $this->template->footer = View_Twig::forge('templates/footer');  
     }  
    
     public function after($response)  
     {  
         $response = parent::after($response);  
         return $response;  
     }  
    }  
  2. テンプレート用のファイルを作成 ※今回はapp/views/template.twig

    <!DOCTYPE html>  
    <html>  
    <head>  
     <meta charset="utf-8">  
     <meta http-equiv="X-UA-Compatible" content="IE=edge" />  
    </head>  
    <body>  
     <header>  
         {{ header }}  
     </header>  
     <div id="content">  
         {{ content }}  
     </div>  
     <footer>  
         {{ footer }}  
     </footer>  
    </body>  
    </html>  

備考

  • Viewの指定あれこれ

    // php拡張子がデフォルトなのでtwigが必要  
    View::forge('test/index.twig');  
    // twigがデフォルトなので拡張子不要  
    View_Twig::forge('test/index');  
    

    あとがき

    もう少し設定いじらなきゃいけなかったような気がするけど、 とりあえずテストでheader・footer・testコンテンツを表示出来るようになりました

技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
駆け出しエンジニアからエキスパートまで全ての方々のアウトプットを歓迎しております!
or 外部アカウントで 登録 / ログイン する
クランチについてもっと詳しく

この記事が掲載されているブログ

@hachi8の技術ブログ

よく一緒に読まれる記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう