|
|
@@ -1,6 +1,6 @@
|
|
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
|
<!-- Reviewed: no -->
|
|
|
-<!-- EN-Revision: 15719 -->
|
|
|
+<!-- EN-Revision: 16163 -->
|
|
|
<sect1 id="zend.controller.actionhelpers" xmlns:xi="http://www.w3.org/2001/XInclude">
|
|
|
<title>アクションヘルパー</title>
|
|
|
|
|
|
@@ -47,7 +47,7 @@
|
|
|
<itemizedlist>
|
|
|
<listitem>
|
|
|
<para>
|
|
|
- 明示的に <code>getHelper()</code> を使用します。
|
|
|
+ 明示的に <methodname>getHelper()</methodname> を使用します。
|
|
|
ヘルパーの名前を指定すると、
|
|
|
そのヘルパーオブジェクトが返されます。
|
|
|
</para>
|
|
|
@@ -60,7 +60,7 @@ $flashMessenger->addMessage('先ほどのリクエストで、あることをし
|
|
|
|
|
|
<listitem>
|
|
|
<para>
|
|
|
- ヘルパーブローカの <code>__get()</code> 機能を使用すると、
|
|
|
+ ヘルパーブローカの <methodname>__get()</methodname> 機能を使用すると、
|
|
|
まるでブローカのプロパティであるかのようにヘルパーを操作できます。
|
|
|
</para>
|
|
|
|
|
|
@@ -73,10 +73,10 @@ $flashMessenger->addMessage('先ほどのリクエストで、あることをし
|
|
|
<listitem>
|
|
|
<para>
|
|
|
たいていのアクションヘルパーは
|
|
|
- <code>direct()</code> メソッドを実装しており、
|
|
|
+ <methodname>direct()</methodname> メソッドを実装しており、
|
|
|
これはそのヘルパーのデフォルトメソッドをコールします。
|
|
|
- <code>FlashMessenger</code> の例では、
|
|
|
- <code>addMessage()</code> をコールします。
|
|
|
+ <methodname>FlashMessenger</methodname> の例では、
|
|
|
+ <methodname>addMessage()</methodname> をコールします。
|
|
|
</para>
|
|
|
|
|
|
<programlisting language="php"><![CDATA[
|
|
|
@@ -108,7 +108,7 @@ $this->_helper->FlashMessenger('先ほどのリクエストで、あることを
|
|
|
|
|
|
<para>
|
|
|
ヘルパーをブローカに登録するには
|
|
|
- <code>addHelper</code> を使用します。
|
|
|
+ <methodname>addHelper()</methodname> を使用します。
|
|
|
</para>
|
|
|
|
|
|
<programlisting language="php"><![CDATA[
|
|
|
@@ -118,14 +118,14 @@ Zend_Controller_Action_HelperBroker::addHelper($helper);
|
|
|
<para>
|
|
|
もちろん、ヘルパーのインスタンスを作成してそれをブローカに渡すという作業は
|
|
|
時間とリソースを消費します。これらの作業の手間をほんの少し省くためのメソッドとして、
|
|
|
- <code>addPrefix()</code> と
|
|
|
- <code>addPath()</code> が用意されています。
|
|
|
+ <methodname>addPrefix()</methodname> と
|
|
|
+ <methodname>addPath()</methodname> が用意されています。
|
|
|
</para>
|
|
|
|
|
|
<itemizedlist>
|
|
|
<listitem>
|
|
|
<para>
|
|
|
- <code>addPrefix()</code> はクラスのプレフィックスを受け取り、
|
|
|
+ <methodname>addPrefix()</methodname> はクラスのプレフィックスを受け取り、
|
|
|
それをもとにヘルパークラスのパスを決定します。
|
|
|
プレフィックスが、Zend Framework のクラス命名規約に沿っているものとみなして、
|
|
|
パスを決定します。
|
|
|
@@ -139,7 +139,7 @@ Zend_Controller_Action_HelperBroker::addPrefix('My_Action_Helpers');
|
|
|
|
|
|
<listitem>
|
|
|
<para>
|
|
|
- <code>addPath()</code> は、最初の引数にディレクトリ、
|
|
|
+ <methodname>addPath()</methodname> は、最初の引数にディレクトリ、
|
|
|
そして二番目の引数にクラスのプレフィックス
|
|
|
(デフォルトは 'Zend_Controller_Action_Helper') を指定します。
|
|
|
これは、指定したディレクトリにある指定したプレフィックスのクラスを追加します。
|
|
|
@@ -162,14 +162,14 @@ Zend_Controller_Action_HelperBroker::addPath('./Plugins/Helpers',
|
|
|
内部的には、ヘルパーブローカは <link
|
|
|
linkend="zend.loader.pluginloader">PluginLoader
|
|
|
のインスタンス</link> を用いてパスを保持します。静的メソッド
|
|
|
- <code>getPluginLoader()</code> で PluginLoader
|
|
|
+ <methodname>getPluginLoader()</methodname> で PluginLoader
|
|
|
を取得することもできますし、また独自の PluginLoader
|
|
|
- インスタンスを <code>setPluginLoader()</code> で設定することもできます。
|
|
|
+ インスタンスを <methodname>setPluginLoader()</methodname> で設定することもできます。
|
|
|
</para>
|
|
|
|
|
|
<para>
|
|
|
ヘルパークラスがヘルパーブローカ内に存在するかどうかを調べるには
|
|
|
- <code>hasHelper($name)</code> を使用します。<varname>$name</varname>
|
|
|
+ <methodname>hasHelper($name)</methodname> を使用します。<varname>$name</varname>
|
|
|
には、ヘルパーのショートネーム (プレフィックスを除いたもの)
|
|
|
を指定します。
|
|
|
</para>
|
|
|
@@ -183,16 +183,16 @@ if (Zend_Controller_Action_HelperBroker::hasHelper('redirector')) {
|
|
|
|
|
|
<para>
|
|
|
ヘルパーブローかからヘルパーを取得する静的メソッドには、さらに
|
|
|
- <code>getExistingHelper()</code> と
|
|
|
- <code>getStaticHelper()</code> のふたつがあります。
|
|
|
- <code>getExistingHelper()</code> は、すでに起動されているか、
|
|
|
+ <methodname>getExistingHelper()</methodname> と
|
|
|
+ <methodname>getStaticHelper()</methodname> のふたつがあります。
|
|
|
+ <methodname>getExistingHelper()</methodname> は、すでに起動されているか、
|
|
|
あるいは明示的にヘルパーブローカに登録されているヘルパーのみを取得します。
|
|
|
存在しない場合は例外をスローします。
|
|
|
- <code>getStaticHelper()</code> は
|
|
|
- <code>getExistingHelper()</code> と同じですが、
|
|
|
+ <methodname>getStaticHelper()</methodname> は
|
|
|
+ <methodname>getExistingHelper()</methodname> と同じですが、
|
|
|
ヘルパースタックに登録されていないヘルパーについてはそのインスタンスを作成しようとします。
|
|
|
自分で設定をしたいヘルパーを取得するには
|
|
|
- <code>getStaticHelper()</code> がおすすめです。
|
|
|
+ <methodname>getStaticHelper()</methodname> がおすすめです。
|
|
|
</para>
|
|
|
|
|
|
<para>
|
|
|
@@ -217,7 +217,7 @@ $redirector =
|
|
|
|
|
|
<para>
|
|
|
最後に、登録済みのヘルパーをブローカから削除するには
|
|
|
- <code>removeHelper($name)</code> を使用します。<varname>$name</varname>
|
|
|
+ <methodname>removeHelper($name)</methodname> を使用します。<varname>$name</varname>
|
|
|
には、ヘルパーのショートネーム (プレフィックスを除いたもの)
|
|
|
を指定します。
|
|
|
</para>
|
|
|
@@ -235,15 +235,15 @@ if (Zend_Controller_Action_HelperBroker::hasHelper('redirector')) {
|
|
|
|
|
|
<para>
|
|
|
Zend Framework には、いくつかのアクションヘルパーがデフォルトで組み込まれています。
|
|
|
- AJAX のオートコンプリート機能用のレスポンスを作成する <code>AutoComplete</code>、
|
|
|
- アクションに応じてレスポンスの形式を変更する <code>ContextSwitch</code> と
|
|
|
- <code>AjaxContext</code>、セッション単位のフラッシュメッセージを扱う
|
|
|
- <code>FlashMessenger</code>、JSON 形式へのエンコードとレスポンスの送信を行う
|
|
|
- <code>Json</code>、
|
|
|
+ AJAX のオートコンプリート機能用のレスポンスを作成する <emphasis>AutoComplete</emphasis>、
|
|
|
+ アクションに応じてレスポンスの形式を変更する <emphasis>ContextSwitch</emphasis> と
|
|
|
+ <emphasis>AjaxContext</emphasis>、セッション単位のフラッシュメッセージを扱う
|
|
|
+ <emphasis>FlashMessenger</emphasis>、JSON 形式へのエンコードとレスポンスの送信を行う
|
|
|
+ <emphasis>Json</emphasis>、
|
|
|
アプリケーション内から内部あるいは外部へのリダイレクトを実装できるようにする
|
|
|
- <code>Redirector</code>、そして
|
|
|
+ <emphasis>Redirector</emphasis>、そして
|
|
|
コントローラ内でのビューオブジェクトの設定とビューのレンダリングを自動化する
|
|
|
- <code>ViewRenderer</code> です。
|
|
|
+ <emphasis>ViewRenderer</emphasis> です。
|
|
|
</para>
|
|
|
|
|
|
<xi:include href="Zend_Controller-ActionHelpers-ActionStack.xml" />
|
|
|
@@ -269,14 +269,14 @@ if (Zend_Controller_Action_HelperBroker::hasHelper('redirector')) {
|
|
|
<itemizedlist>
|
|
|
<listitem>
|
|
|
<para>
|
|
|
- <code>setActionController()</code>
|
|
|
+ <methodname>setActionController()</methodname>
|
|
|
を使用して、現在のアクションコントローラを設定します。
|
|
|
</para>
|
|
|
</listitem>
|
|
|
|
|
|
<listitem>
|
|
|
<para>
|
|
|
- <code>init()</code>
|
|
|
+ <methodname>init()</methodname>
|
|
|
はヘルパーブローカによって起動時に実行され、
|
|
|
ヘルパーを初期化します。これは、
|
|
|
アクションチェイン内の複数のコントローラで同一のヘルパーを使用している場合に
|
|
|
@@ -286,55 +286,55 @@ if (Zend_Controller_Action_HelperBroker::hasHelper('redirector')) {
|
|
|
|
|
|
<listitem>
|
|
|
<para>
|
|
|
- <code>preDispatch()</code>
|
|
|
+ <methodname>preDispatch()</methodname>
|
|
|
はディスパッチアクションの前に実行されます。
|
|
|
</para>
|
|
|
</listitem>
|
|
|
|
|
|
<listitem>
|
|
|
<para>
|
|
|
- <code>postDispatch()</code>
|
|
|
+ <methodname>postDispatch()</methodname>
|
|
|
はディスパッチアクションが終了した後で実行されます。
|
|
|
- <code>preDispatch()</code> プラグインがアクションの処理をスキップした場合も、
|
|
|
+ <methodname>preDispatch()</methodname> プラグインがアクションの処理をスキップした場合も、
|
|
|
これは実行されます。後始末などをここで行います。
|
|
|
</para>
|
|
|
</listitem>
|
|
|
|
|
|
<listitem>
|
|
|
<para>
|
|
|
- <code>getRequest()</code>
|
|
|
+ <methodname>getRequest()</methodname>
|
|
|
は現在のリクエストオブジェクトを取得します。
|
|
|
</para>
|
|
|
</listitem>
|
|
|
|
|
|
<listitem>
|
|
|
<para>
|
|
|
- <code>getResponse()</code>
|
|
|
+ <methodname>getResponse()</methodname>
|
|
|
は現在のレスポンスオブジェクトを取得します。
|
|
|
</para>
|
|
|
</listitem>
|
|
|
|
|
|
<listitem>
|
|
|
<para>
|
|
|
- <code>getName()</code>
|
|
|
+ <methodname>getName()</methodname>
|
|
|
はヘルパーの名前を取得します。
|
|
|
クラス名にアンダースコアが含まれる場合は最後のアンダースコア以降の文字、
|
|
|
そうでない場合はクラス名全体を返します。たとえば、クラス名が
|
|
|
<classname>Zend_Controller_Action_Helper_Redirector</classname>
|
|
|
- の場合は <code>Redirector</code> を、クラス名が
|
|
|
+ の場合は <emphasis>Redirector</emphasis> を、クラス名が
|
|
|
<code>FooMessage</code> の場合はそのままの名前を返します。
|
|
|
</para>
|
|
|
</listitem>
|
|
|
</itemizedlist>
|
|
|
|
|
|
<para>
|
|
|
- オプションで、ヘルパークラスに <code>direct()</code>
|
|
|
+ オプションで、ヘルパークラスに <methodname>direct()</methodname>
|
|
|
メソッドを実装することもできます。これを定義しておくと、
|
|
|
ヘルパーブローカのメソッドであるかのようにそのヘルパーを扱えるようになります。
|
|
|
これにより、一度だけ使用するようなヘルパーが扱いやすくなります。
|
|
|
たとえば、<link
|
|
|
linkend="zend.controller.actionhelpers.redirector">redirector</link>
|
|
|
- の <code>direct()</code> は <code>goto()</code>
|
|
|
+ の <methodname>direct()</methodname> は <methodname>goto()</methodname>
|
|
|
のエイリアスとなっているので、このようにして使用することができます。
|
|
|
</para>
|
|
|
|
|
|
@@ -344,7 +344,7 @@ $this->_helper->redirector('item', 'view', 'blog', array('id' => 42));
|
|
|
]]></programlisting>
|
|
|
|
|
|
<para>
|
|
|
- 内部的には、まずヘルパーブローカの <code>__call()</code>
|
|
|
+ 内部的には、まずヘルパーブローカの <methodname>__call()</methodname>
|
|
|
メソッドが <code>redirector</code> という名前のヘルパーを探し、
|
|
|
それからそのヘルパーで <code>direct</code>
|
|
|
メソッドが定義されているかどうかを調べ、
|