FuelPHPのテンプレートコントローラについて1[FuelPHP入門][はじめてのフレームワークとしてのFuelPHP]

テンプレートコントローラは、テンプレート機能(レイアウト機能)を提供するコントローラの拡張の一つ。

テンプレートコントローラについて、公式ドキュメントより抜粋。

Template コントローラは、ベースとなるコントローラの拡張で、いくつかの定義済みの before() と after() メソッドを使用することで、テンプレート機能を持っています。 基本的に、 ヘッダ、フッタ、サイドバーなどを持つレイアウトで、ビューをラップします。

なるほど(意味がわからんな)。

1.テンプレート機能とレイアウト機能

参考にしてる2つの参考書では、テンプレートコントローラは、テンプレート機能またはレイアウト機能を提供する、って書いてある。
これって同じ機能のことなんだろうか。

FuelPHP入門」では

テンプレートコントローラとはControllerクラスのサブクラスで、定義済みのbefore()とafter()によってテンプレート(各ページが共通で用いるビュー)をビューとして読み込むものです。

はじめてのフレームワークとしてのFuelPHP」では

レイアウト機能とは、1 つのHTML ページを複数のビューファイルに分割し、部品化する方法です。

比較すると同じ機能だってわかる。
ヘッダーとフッターは共通だけど、body(コンテンツ)はページごとに違うって時に使うものなのか。

でもこれって、「ビューの入れ子」とは違うのか(FuelPHPのビューを入れ子にする)。
ビューの入れ子は、ビューからビューを読み込むことだったけど。。。

2.テンプレートコントローラについて

テンプレートコントローラは、骨組みであるhtmlは同じだけど、コントローラから渡す値によってレイアウトや表示するコンテンツが違う、って解釈でいく。
自信ないけど・・・

テンプレートコントローラは、定義済みの before() と after() によって各ページで共通するビューを読み込む(ここは次回)。
デフォルトは APPPATH/views/ の template.php を読み込むらしいが、初期はないよね?

テンプレートコントローラにはあらかじめ templateプロパティが用意されている。
このプロパティを変更することで、ビュー名を設定する。

Controller_Template を継承して、Controller_Exampleクラスを作成する。
ビュー名は、example_template とし、これでAPPPATH/views/example_template.phpを作っておけばOK。

class Controller_Example extends Controller_Template
{
    public $template = 'example_template';
    public function action_index()
    {
        ...
    }
}

まだ勉強不足。

参考

Template コントローラ – 概要 – FuelPHP ドキュメント

FuelPHPのテンプレートコントローラ | WinRoad徒然草

Templateコントローラを利用してページのテンプレートを利用する | FuelPHPメモ

コメント

タイトルとURLをコピーしました