以前のエントリ「FuelPHPを使ってみる」の続きです。
Twigを導入するか迷ったんですが、今回はなじみがあるのでSmartyを採用(導入)します。
最初に。
バージョン1.7.2でのセットアップ方法です。
Smartyを別途ダウンロードして来て fuel/app/venderの配下に置くという情報もありますが、1.7.2では不要の様です。
Smartyのセットアップ(インストール)
APPPATH/composer.json
"require": { "php": ">=5.3.3", "composer/installers": "~1.0", ・ ・ (省略) ・ "michelf/php-markdown": "1.4.0", "smarty/smarty": "3.*" // ←これ追加します。 },
omposer.jsonにsmartyの記述を追加し、コマンドラインから以下のコマンドを実行します。
$ php composer.phar update
APPPATH/fuel/app/config/config.php
'always_load' => array( 'packages' => array( 'parser', ), ),
always_loadにpacages,parserを追加します。コメントアウトされているので、コメントインするだけなのですが、pacagesの辺りだけでなく、always_loadの行もコメントアウトされているのにしばらく気づかず「Class ‘View_Smarty’ not found」のエラーから脱出できませんでした。
ここまででインストール周りは終了です。
テンプレートの拡張子
デフォルトでは拡張子が”.smarty”になります。
ちょっとなじめないので、”.tpl”に変更します。
APPPATH/fuel/pacages/parser/classes/view/smarty.php
42行目あたりを修正します。
//public $extension = 'smarty';//コメントアウト public $extension = 'tpl';//←tplに変更
テンプレートの追加とviewの変更
テンプレートを追加します。
APPPATH/fuel/app/views/welcomeの配下にテンプレートを配置します。今回はsmarty_index.tplとします。
APPPATH/fuel/app/views/welcome/smarty_index.tpl
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>FuelPHP Framework</title> </head> <body> {$body} </body> </html>
APPPATH/fuel/app/classes/welcome.php を更新します。
public function action_index() { //return Response::forge(View::forge('welcome/index'));// コメントアウト $data = array("body"=>'Smartyテンプレートテスト');// 追加 return Response::forge(View_Smarty::forge('welcome/smarty_index', $data));// 追加 }
無事表示されれば完了です!