Zend Frameworkについて(View編2) [Zend Framework]
Viewについての続き。
マニュアルでは18.4からです。
ヘルパーについて
HTMLタグや繰り返し処理をいちいち書かなくてもいいように、
Zend_Viewではヘルパーと呼ばれるテンプレートで使える関数が提供されています。
Zend_Viewが提供しているヘルパーは、マニュアル参照。
サンプルとして「formText」ヘルパーを使ってみます。
<?php echo $this->formText('text1', 123, array('size'=>30)) ?>
これをブラウザで表示した場合、次のHTMLタグが作成されます。
<input type="text" name="text1" id="text1" value="123" size="30" />
また、この時に表示される値は自動的にエスケープされた値が設定されています。
Zend_Viewで提供されているヘルパーは主にフォーム要素作成用ですが、
他のヘルパーが欲しい場合は、独自にヘルパーを作る事が出来ます。
独自ヘルパーを作るにあたり、ここでも命名規則が存在します。
class View_Helper_xxxx
このxxxxの部分(クラス名の最後の部分)にヘルパーのメソッド名を指定します。
さらにファイル名もヘルパーのメソッド名、この場合は「xxxx.php」と名付ける必要があります。
ちなみに「View_Helper」は自由に変える事が出来ますが、
独自ヘルパーのクラス名に「View_Helper」を含める事はZendが推奨しています。
自作ヘルパーは任意の場所に格納する事が出来ます。
それにはコントローラでViewクラスの「setHelperPath」メソッドを使って、
格納パスを指定する必要があります。
$view->setHelperPath('[ 格納パス ]', '[ プレフィックス名 ]');
[ 格納パス ]に自作ヘルパーを格納しているパスを設定します。
この時、Zend_Viewのヘルパーと同じ場所に格納しても、
格納パスは指定する必要があるので注意が必要です。
[ プレフィックス名 ]には独自ヘルパークラスのヘルパー名の前の部分を指定します。
サンプルの「View_Helper_xxxx」の場合、「View_Helper」がそれになります。
独自ヘルパーのサンプルとして、リンクタグを作るヘルパーを作ってみます。
超絶簡単サンプル
makeLinkTag.php
class View_Helper_makeLinkTag {
public function makeLinkTag($url, $text=null) {
if ($text) { $href = "<a href='{$url}'>{$text}</a>"; }
else { $href = "<a href='{$url}'>{$url}</a>"; }
return $href;
}
}
ここでは$urlに指定されたURLでリンクタグを作成します。
$textが指定された場合は$textを、指定されなかった場合はURLをリンク名に表示させます。
コントローラ内のアクションメソッド
$view->setHelperPath('/var/www/zend/application/library/Zend/View/MyHelper', 'View_Helper');
独自ヘルパーを使うテンプレートを出力する前に設定します。
テンプレート
<?php echo $this->makeLinkTag('http://www.google.co.jp/', 'Google') ?>
サンプルを実行することで、独自ヘルパーが動いて以下のHTMLタグが作成されます。
<a href='http://www.google.co.jp/'>Google</a>
Viewは簡単なとこだけでも書くことが多い・・
他のテンプレートエンジンの使い方についてはまた次回。








コメント 0