「FuelPHPでHello World」でhello, world!と出力するコントローラを 作成しましたが、ここではビューを使ったhello, world!を作成します。
ビューを使う方法はいくつかありますが、Controller_Templateクラスを継承する方法で作成します。
テンプレートと呼ばれる、外枠のHTMLを作成し中身を置き換えるように作成します。
app/viewsディレクトリにtemplate.phpを作成します。
サイト全体に共通する部分を作成し、コンテンツ部分等を置き換える(変数)ようにします。
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title><?php echo $title ?></title> </head> <body> <?php echo $content ?> </body> </html>
Viewを簡単に使うにはController_Templateクラスを継承してコントローラを作成します。
app/classes/controller/website.phpを次のように作成します。
class Controller_Website extends Controller_Template { function action_index() { $this->template->title = 'Sample FuelPHP 1.7'; $this->template->content = 'hello, world!'; } }
以上でテンプレート(View)を使った hello, world! の完成です。kohanaとかなり似ていますね。
上記例では、作成したtemplate.phpが使われている場所がありません。
継承元であるController_Templateは次のように作成されており、デフォルトで「template.php」 ファイルを使用するように設計されています。
abstract class Controller_Template extends \Controller { public $template = 'template'; public function before() { if ( ! empty($this->template) and is_string($this->template)) { $this->template = \View::forge($this->template); } return parent::before(); } public function after($response) { if ($response === null) { $response = $this->template; } return parent::after($response); } }
ざっくり読んでみると、beforeメソッドでtemplate.phpがロードされ、 デフォルトのテンプレートとして出力されています。
Copyright 1997-2010 BBB All rights reserved.