Zend Framework - アクションヘルパー記述例

HOME | TOP

■ アクションヘルパーのシンプル例


アクションヘルパーを作るには、Zend_Controller_Action_Helper_Abstractクラスを継承したサブクラスを作成します。

Zend/Controller/Action/Helper/Abstract.phpは、Zend/Controller/Action.php内で呼ばれているのでこれを呼べばいいわけですが、アクションヘルパー自体がアクションコントローラから呼ばれるのでなにも呼ぶ必要はありません。

アクションヘルパー例 [application/controllers/helpers/Foo.php]

クラス名は、他とバッティングしないような名前にする必要があります。

分かりやすいように、"Helper_" + "ヘルパー名"のように付けておくと、以下に説明する呼び出しの方法が楽になると思います。


ヘルパーとして呼びたいメソッドを自作してそれをアクションコントローラ側から呼ぶことになります。
呼び方は以下のようにします。

アクションコントローラ例 [application/controllers/FooController.php]

まずアクションヘルパーを使えるようにするためにヘルパブローカーに登録します。

addPath()メソッド第一引数にアクションヘルパー置き場を指定して、第二引数にヘルパークラス名のプレフィックス部分(上記ではHelper_FooなのでHelper部分に当たる)を指定します。


登録が済んだらヘルパーブローカのgetHelper()メソッドでヘルパー名を指定してその中のメソッドを呼び出します。


■ アクションヘルパーに追加できる記述


アクションヘルパーはアクションコントローラと似たように、特定のタイミングで呼び出されるメソッドを定義しておくこともできます。

アクションヘルパー例 [application/controllers/helpers/Foo.php]

例に書いたbar()以外にもヘルパー内容を記述したメソッドをfoo()だろうがfuga()だろうが定義できるので、もしinit(), preDispatch(), postDispatch()が定義されていれば、アクションコントローラ側からヘルパーが呼び出される度に順を追って呼ばれることになります。


2010(C)Mingw