【CakePHP】ビューブロックを使ってみる。

例えばページごとに読み込むスクリプトを減らしたり追加したかったりするのをスマートに書きたいときなどに便利。

レイアウトファイルのヘッダー内に以下を記述。

echo $this->fetch('script');

次に各ビューファイルで以下を記述。

$this->append('script');
echo $this->element('elementFileName');
$this->end();

するとヘッダー内に記述したfetch(‘script’)の部分に呼び出したエレメントを挿入してくれるのである。
ちなみにHTMLヘルパーで読み込んだスクリプトファイルもfetch(‘script’)に渡すことが可能。

例えば以下のような感じ。

echo $this->Html->script('//www.google.com/jsapi', array('inline' => false));

HTMLヘルパー、script()メソッドの第二引数に「’inline’ => false」を渡してやると、その場ではなくビューブロック内に追加してくれる。
jsapiを必要なページのみで読み込みたい場合など、状況に応じてブロック内を簡単に書き換えられるため非常に便利。