|
|
@@ -1,6 +1,6 @@
|
|
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
|
<!-- Reviewed: no -->
|
|
|
-<!-- EN-Revision: 15719 -->
|
|
|
+<!-- EN-Revision: 16162 -->
|
|
|
<sect3 id="zend.controller.actionhelpers.viewrenderer">
|
|
|
<title>ViewRenderer</title>
|
|
|
|
|
|
@@ -8,7 +8,7 @@
|
|
|
<title>導入</title>
|
|
|
|
|
|
<para>
|
|
|
- <code>ViewRenderer</code> ヘルパーは、
|
|
|
+ <emphasis>ViewRenderer</emphasis> ヘルパーは、
|
|
|
以下のような要件を満たすために作られたものです。
|
|
|
</para>
|
|
|
|
|
|
@@ -60,34 +60,34 @@
|
|
|
|
|
|
<note>
|
|
|
<para>
|
|
|
- <code>_forward()</code> やリダイレクト、あるいは手動でのレンダリングを行う場合は、
|
|
|
+ <methodname>_forward()</methodname> やリダイレクト、あるいは手動でのレンダリングを行う場合は、
|
|
|
自動レンダリングは不要です。これらの処理を行う場合は、
|
|
|
- 出力を自前で行うことを <code>ViewRenderer</code>
|
|
|
+ 出力を自前で行うことを <emphasis>ViewRenderer</emphasis>
|
|
|
に対して指示します。
|
|
|
</para>
|
|
|
</note>
|
|
|
|
|
|
<note>
|
|
|
<para>
|
|
|
- <code>ViewRenderer</code> はデフォルトで有効になっています。
|
|
|
+ <emphasis>ViewRenderer</emphasis> はデフォルトで有効になっています。
|
|
|
これを無効にするには、フロントコントローラのパラメータ
|
|
|
<code>noViewRenderer</code> を指定する
|
|
|
- (<code>$front->setParam('noViewRenderer', true)</code>) か、
|
|
|
+ (<methodname>$front->setParam('noViewRenderer', true)</methodname>) か、
|
|
|
あるいはヘルパーブローカからヘルパーを削除
|
|
|
- (<classname>Zend_Controller_Action_HelperBroker::removeHelper('viewRenderer')</classname>)
|
|
|
+ (<methodname>Zend_Controller_Action_HelperBroker::removeHelper('viewRenderer')</methodname>)
|
|
|
します。
|
|
|
</para>
|
|
|
|
|
|
<para>
|
|
|
フロントコントローラでのディスパッチ処理の前に
|
|
|
- <code>ViewRenderer</code> の設定を変更したい場合は、
|
|
|
+ <emphasis>ViewRenderer</emphasis> の設定を変更したい場合は、
|
|
|
次のいずれかの方法を使用します。
|
|
|
</para>
|
|
|
|
|
|
<itemizedlist>
|
|
|
<listitem>
|
|
|
<para>
|
|
|
- 独自の <code>ViewRenderer</code> のインスタンスを作成し、
|
|
|
+ 独自の <emphasis>ViewRenderer</emphasis> のインスタンスを作成し、
|
|
|
ヘルパーブローカにそれを渡して登録する。
|
|
|
</para>
|
|
|
|
|
|
@@ -101,7 +101,7 @@ Zend_Controller_Action_HelperBroker::addHelper($viewRenderer);
|
|
|
|
|
|
<listitem>
|
|
|
<para>
|
|
|
- <code>ViewRenderer</code> オブジェクトを、
|
|
|
+ <emphasis>ViewRenderer</emphasis> オブジェクトを、
|
|
|
ヘルパーブローカから必要に応じて作成、取得する。
|
|
|
</para>
|
|
|
|
|
|
@@ -120,10 +120,10 @@ $viewRenderer->setView($view)
|
|
|
<title>API</title>
|
|
|
|
|
|
<para>
|
|
|
- もっとも基本的な使用法は、単に <code>ViewRenderer</code>
|
|
|
+ もっとも基本的な使用法は、単に <emphasis>ViewRenderer</emphasis>
|
|
|
のインスタンスを作成してそれをヘルパーブローカに渡すというものです。
|
|
|
インスタンスの作成と登録を一度に行うには、ヘルパーブローカの
|
|
|
- <code>getStaticHelper()</code> メソッドを使用するのがいちばん簡単です。
|
|
|
+ <methodname>getStaticHelper()</methodname> メソッドを使用するのがいちばん簡単です。
|
|
|
</para>
|
|
|
|
|
|
<programlisting language="php"><![CDATA[
|
|
|
@@ -132,19 +132,19 @@ Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer');
|
|
|
|
|
|
<para>
|
|
|
アクションコントローラのインスタンスが最初に作成されたときに、
|
|
|
- <code>ViewRenderer</code> がビューオブジェクトのインスタンスを作成します。
|
|
|
- コントローラのインスタンスが作成されるたびに、<code>ViewRenderer</code>
|
|
|
- の <code>init()</code> がコールされます。
|
|
|
+ <emphasis>ViewRenderer</emphasis> がビューオブジェクトのインスタンスを作成します。
|
|
|
+ コントローラのインスタンスが作成されるたびに、<emphasis>ViewRenderer</emphasis>
|
|
|
+ の <methodname>init()</methodname> がコールされます。
|
|
|
ここでアクションコントローラのビュープロパティを設定し、
|
|
|
現在のモジュールからの相対パスを指定して
|
|
|
- <code>addScriptPath()</code> をコールします。
|
|
|
+ <methodname>addScriptPath()</methodname> をコールします。
|
|
|
これは現在のモジュール名に基づいたプレフィックスをクラス名の先頭につけてコールされるので、
|
|
|
ヘルパーやフィルタのクラスをモジュール内で効率的に管理することができます。
|
|
|
</para>
|
|
|
|
|
|
<para>
|
|
|
- <code>postDispatch()</code> がコールされるたびに、現在のアクションの
|
|
|
- <code>render()</code> を自動的にコールします。
|
|
|
+ <methodname>postDispatch()</methodname> がコールされるたびに、現在のアクションの
|
|
|
+ <methodname>render()</methodname> を自動的にコールします。
|
|
|
</para>
|
|
|
|
|
|
<para>
|
|
|
@@ -175,92 +175,93 @@ $this->foo(); // Foo_View_Helper_Foo::foo() をコールします
|
|
|
]]></programlisting>
|
|
|
|
|
|
<para>
|
|
|
- <code>ViewRenderer</code> には、
|
|
|
+ <emphasis>ViewRenderer</emphasis> には、
|
|
|
ビューのオプションを取得したり設定したりするためのメソッドも豊富に用意されています。
|
|
|
</para>
|
|
|
|
|
|
<itemizedlist>
|
|
|
<listitem>
|
|
|
<para>
|
|
|
- <code>setView($view)</code>
|
|
|
- は <code>ViewRenderer</code> が使用するビューオブジェクトを設定します。
|
|
|
+ <methodname>setView($view)</methodname>
|
|
|
+ は <emphasis>ViewRenderer</emphasis> が使用するビューオブジェクトを設定します。
|
|
|
これは、クラスのプロパティ <varname>$view</varname> の値を設定します。
|
|
|
</para>
|
|
|
</listitem>
|
|
|
|
|
|
<listitem>
|
|
|
<para>
|
|
|
- <code>setNeverRender($flag = true)</code>
|
|
|
+ <methodname>setNeverRender($flag = true)</methodname>
|
|
|
を使用すると、自動レンダリング機能を全体的に
|
|
|
(すべてのコントローラに対して)無効にしたり有効にしたりできます。
|
|
|
- true を指定すると、そのコントローラの <code>postDispatch()</code>
|
|
|
- では <code>render()</code> をコールしなくなります。
|
|
|
- <code>getNeverRender()</code> は、現在の設定を取得します。
|
|
|
+ true を指定すると、そのコントローラの <methodname>postDispatch()</methodname>
|
|
|
+ では <methodname>render()</methodname> をコールしなくなります。
|
|
|
+ <methodname>getNeverRender()</methodname> は、現在の設定を取得します。
|
|
|
</para>
|
|
|
</listitem>
|
|
|
|
|
|
<listitem>
|
|
|
<para>
|
|
|
- <code>setNoRender($flag = true)</code>
|
|
|
+ <methodname>setNoRender($flag = true)</methodname>
|
|
|
を使用すると、自動レンダリングを無効にしたり有効にしたりできます。
|
|
|
- true を指定すると、現在のコントローラの <code>postDispatch()</code>
|
|
|
- では <code>render()</code> をコールしなくなります。
|
|
|
- この設定は、<code>preDispatch()</code> がコールされるたびにいったんリセットされます
|
|
|
+ true を指定すると、現在のコントローラの <methodname>postDispatch()</methodname>
|
|
|
+ では <methodname>render()</methodname> をコールしなくなります。
|
|
|
+ この設定は、<methodname>preDispatch()</methodname>
|
|
|
+ がコールされるたびにいったんリセットされます
|
|
|
(つまり、自動レンダリングを無効にしたいすべてのコントローラで
|
|
|
個々にこれを設定する必要があるということです)。
|
|
|
- <code>getNoRender()</code> は、現在の設定を取得します。
|
|
|
+ <methodname>getNoRender()</methodname> は、現在の設定を取得します。
|
|
|
</para>
|
|
|
</listitem>
|
|
|
|
|
|
<listitem>
|
|
|
<para>
|
|
|
- <code>setNoController($flag = true)</code>
|
|
|
- を使用すると、<code>render()</code>
|
|
|
+ <methodname>setNoController($flag = true)</methodname>
|
|
|
+ を使用すると、<methodname>render()</methodname>
|
|
|
がコントローラ名のサブディレクトリにあるアクションスクリプトを
|
|
|
読みにいかなくすることができます (デフォルトでは読みにいきます)。
|
|
|
- <code>getNoController()</code> は、現在の設定を取得します。
|
|
|
+ <methodname>getNoController()</methodname> は、現在の設定を取得します。
|
|
|
</para>
|
|
|
</listitem>
|
|
|
|
|
|
<listitem>
|
|
|
<para>
|
|
|
- <code>setNeverController($flag = true)</code>
|
|
|
- は <code>setNoController()</code> と似ていますが、
|
|
|
+ <methodname>setNeverController($flag = true)</methodname>
|
|
|
+ は <methodname>setNoController()</methodname> と似ていますが、
|
|
|
こちらは全体に影響を与えます。つまり、
|
|
|
ディスパッチ処理を行っても設定はリセットされません。
|
|
|
- <code>getNeverController()</code> は、現在の設定を取得します。
|
|
|
+ <methodname>getNeverController()</methodname> は、現在の設定を取得します。
|
|
|
</para>
|
|
|
</listitem>
|
|
|
|
|
|
<listitem>
|
|
|
<para>
|
|
|
- <code>setScriptAction($name)</code>
|
|
|
+ <methodname>setScriptAction($name)</methodname>
|
|
|
を使用すると、レンダリングするアクションスクリプトを指定することができます。
|
|
|
<varname>$name</varname> は、スクリプト名から拡張子を除いたもの
|
|
|
(そして、<code>noController</code> が指定されていない限り、
|
|
|
コントローラのディレクトリ名も除いたもの) となります。
|
|
|
指定しなかった場合は、リクエストオブジェクト内のアクションに基づいた名前の
|
|
|
ビュースクリプトを探します。
|
|
|
- <code>getScriptAction()</code> は、現在の設定を取得します。
|
|
|
+ <methodname>getScriptAction()</methodname> は、現在の設定を取得します。
|
|
|
</para>
|
|
|
</listitem>
|
|
|
|
|
|
<listitem>
|
|
|
<para>
|
|
|
- <code>setResponseSegment($name)</code>
|
|
|
+ <methodname>setResponseSegment($name)</methodname>
|
|
|
を使用すると、レンダリング結果を出力する
|
|
|
レスポンスオブジェクトのセグメント名を指定することができます。
|
|
|
指定しなかった場合は、デフォルトのセグメントにレンダリングします。
|
|
|
- <code>getResponseSegment()</code> は、現在の設定を取得します。
|
|
|
+ <methodname>getResponseSegment()</methodname> は、現在の設定を取得します。
|
|
|
</para>
|
|
|
</listitem>
|
|
|
|
|
|
<listitem>
|
|
|
<para>
|
|
|
- <code>initView($path, $prefix, $options)</code>
|
|
|
+ <methodname>initView($path, $prefix, $options)</methodname>
|
|
|
は、ビューの基底パスを指定します。
|
|
|
また、ヘルパースクリプトとフィルタスクリプトの先頭につけるクラスプレフィックスや
|
|
|
- <code>ViewRenderer</code> のオプションも設定します。
|
|
|
+ <emphasis>ViewRenderer</emphasis> のオプションも設定します。
|
|
|
オプションには、
|
|
|
<code>neverRender</code>、<code>noRender</code>、
|
|
|
<code>noController</code>、<code>scriptAction</code>
|
|
|
@@ -271,11 +272,11 @@ $this->foo(); // Foo_View_Helper_Foo::foo() をコールします
|
|
|
|
|
|
<listitem>
|
|
|
<para>
|
|
|
- <code>setRender($action = null, $name = null, $noController
|
|
|
- = false)</code>
|
|
|
+ <methodname>setRender($action = null, $name = null, $noController
|
|
|
+ = false)</methodname>
|
|
|
を使用すると、<code>scriptAction</code> や <code>responseSegment</code>
|
|
|
そして <code>noController</code> のいずれかまたは複数を
|
|
|
- 一度に指定することができます。<code>direct()</code>
|
|
|
+ 一度に指定することができます。<methodname>direct()</methodname>
|
|
|
はこのメソッドのエイリアスで、コントローラ内から簡単にコールすることができます。
|
|
|
</para>
|
|
|
|
|
|
@@ -289,19 +290,20 @@ $this->_helper->viewRenderer('form', 'html', true);
|
|
|
]]></programlisting>
|
|
|
|
|
|
<note><para>
|
|
|
- <code>setRender()</code> および <code>direct()</code>
|
|
|
+ <methodname>setRender()</methodname> および <methodname>direct()</methodname>
|
|
|
は、実際にはビュースクリプトをレンダリングしません。
|
|
|
- 実際にレンダリングを行うのは <code>postDispatch()</code>
|
|
|
- や <code>render()</code> で、それらのメソッドに対するヒントを指示するだけです。
|
|
|
+ 実際にレンダリングを行うのは <methodname>postDispatch()</methodname>
|
|
|
+ や <methodname>render()</methodname> で、
|
|
|
+ それらのメソッドに対するヒントを指示するだけです。
|
|
|
</para></note>
|
|
|
</listitem>
|
|
|
</itemizedlist>
|
|
|
|
|
|
<para>
|
|
|
コンストラクタのオプションとして、
|
|
|
- ビューオブジェクトを渡したり <code>ViewRenderer</code>
|
|
|
+ ビューオブジェクトを渡したり <emphasis>ViewRenderer</emphasis>
|
|
|
のオプションを渡したりすることができます。
|
|
|
- このオプションで指定できるのは、<code>initView()</code>
|
|
|
+ このオプションで指定できるのは、<methodname>initView()</methodname>
|
|
|
で説明したフラグと同じものです。
|
|
|
</para>
|
|
|
|
|
|
@@ -322,33 +324,33 @@ $viewRenderer =
|
|
|
<itemizedlist>
|
|
|
<listitem>
|
|
|
<para>
|
|
|
- <code>:moduleDir</code> は、現在のモジュールの基底ディレクトリを指します
|
|
|
+ <emphasis>:moduleDir</emphasis> は、現在のモジュールの基底ディレクトリを指します
|
|
|
(規約では、これはモジュールのコントローラディレクトリの親ディレクトリとなります)。
|
|
|
</para>
|
|
|
</listitem>
|
|
|
|
|
|
<listitem>
|
|
|
<para>
|
|
|
- <code>:module</code> は、現在のモジュール名を指します。
|
|
|
+ <emphasis>:module</emphasis> は、現在のモジュール名を指します。
|
|
|
</para>
|
|
|
</listitem>
|
|
|
|
|
|
<listitem>
|
|
|
<para>
|
|
|
- <code>:controller</code> は、現在のコントローラ名を指します。
|
|
|
+ <emphasis>:controller</emphasis> は、現在のコントローラ名を指します。
|
|
|
</para>
|
|
|
</listitem>
|
|
|
|
|
|
<listitem>
|
|
|
<para>
|
|
|
- <code>:action</code> は、現在のアクション名を指します。
|
|
|
+ <emphasis>:action</emphasis> は、現在のアクション名を指します。
|
|
|
</para>
|
|
|
</listitem>
|
|
|
|
|
|
<listitem>
|
|
|
<para>
|
|
|
- <code>:suffix</code> は、ビュースクリプトのサフィックス
|
|
|
- (<code>setViewSuffix()</code> で設定したもの) を指します。
|
|
|
+ <emphasis>:suffix</emphasis> は、ビュースクリプトのサフィックス
|
|
|
+ (<methodname>setViewSuffix()</methodname> で設定したもの) を指します。
|
|
|
</para>
|
|
|
</listitem>
|
|
|
</itemizedlist>
|
|
|
@@ -360,37 +362,37 @@ $viewRenderer =
|
|
|
<itemizedlist>
|
|
|
<listitem>
|
|
|
<para>
|
|
|
- <code>setViewBasePathSpec($spec)</code>
|
|
|
+ <methodname>setViewBasePathSpec($spec)</methodname>
|
|
|
は、ビューオブジェクトを追加する際に使用する基底パスを
|
|
|
決める際に使用するパス指定を変更します。
|
|
|
デフォルトの設定は <code>:moduleDir/views</code> です。
|
|
|
現在の設定を取得するには
|
|
|
- <code>getViewBasePathSpec()</code> を使用します。
|
|
|
+ <methodname>getViewBasePathSpec()</methodname> を使用します。
|
|
|
</para>
|
|
|
</listitem>
|
|
|
|
|
|
<listitem>
|
|
|
<para>
|
|
|
- <code>setViewScriptPathSpec($spec)</code>
|
|
|
+ <methodname>setViewScriptPathSpec($spec)</methodname>
|
|
|
は、個々のビュースクリプトのパス
|
|
|
(からビュースクリプトの基底パスを除いた部分)
|
|
|
を決める際に使用するパス指定を変更します。
|
|
|
デフォルトの設定は <code>:controller/:action.:suffix</code> です。
|
|
|
現在の設定を取得するには
|
|
|
- <code>getViewScriptPathSpec()</code> を使用します。
|
|
|
+ <methodname>getViewScriptPathSpec()</methodname> を使用します。
|
|
|
</para>
|
|
|
</listitem>
|
|
|
|
|
|
<listitem>
|
|
|
<para>
|
|
|
- <code>setViewScriptPathNoControllerSpec($spec)</code>
|
|
|
+ <methodname>setViewScriptPathNoControllerSpec($spec)</methodname>
|
|
|
は、<code>noController</code> が有効な場合に
|
|
|
個々のビュースクリプトのパス
|
|
|
(からビュースクリプトの基底パスを除いた部分)
|
|
|
を決める際に使用するパス指定を変更します。
|
|
|
デフォルトの設定は <code>:action.:suffix</code> です。
|
|
|
現在の設定を取得するには
|
|
|
- <code>getViewScriptPathNoControllerSpec()</code> を使用します。
|
|
|
+ <methodname>getViewScriptPathNoControllerSpec()</methodname> を使用します。
|
|
|
</para>
|
|
|
</listitem>
|
|
|
</itemizedlist>
|
|
|
@@ -398,7 +400,7 @@ $viewRenderer =
|
|
|
<para>
|
|
|
パス指定をよりきめ細かく行うには、
|
|
|
<link linkend="zend.filter.inflector">Zend_Filter_Inflector</link>
|
|
|
- を使用します。実は、<code>ViewRenderer</code>
|
|
|
+ を使用します。実は、<emphasis>ViewRenderer</emphasis>
|
|
|
はパスのマッピングを行う際に既にインフレクタを使用しています。
|
|
|
インフレクタに手を入れたい (独自のインフレクタを使用したり、
|
|
|
デフォルトのインフレクタに手を加えたりしたい) 場合は、
|
|
|
@@ -408,25 +410,25 @@ $viewRenderer =
|
|
|
<itemizedlist>
|
|
|
<listitem>
|
|
|
<para>
|
|
|
- <code>getInflector()</code> は、インフレクタを取得します。
|
|
|
- まだ <code>ViewRenderer</code> にインフレクタが存在しない場合は、
|
|
|
+ <methodname>getInflector()</methodname> は、インフレクタを取得します。
|
|
|
+ まだ <methodname>ViewRenderer</methodname> にインフレクタが存在しない場合は、
|
|
|
デフォルトの規則にもとづいたインフレクタを作成します。
|
|
|
</para>
|
|
|
|
|
|
<para>
|
|
|
- By default, it uses static rule references for the suffix
|
|
|
- and module directory, as well as a static target; this
|
|
|
- allows various <code>ViewRenderer</code> properties the
|
|
|
- ability to dynamically modify the inflector.
|
|
|
+ デフォルトでは、サフィックスやモジュールディレクトリへの参照に静的ルールを使用します。
|
|
|
+ また静的な対象を使用します。これにより、さまざまな
|
|
|
+ <emphasis>ViewRenderer</emphasis> のプロパティから
|
|
|
+ 動的にインフレクタを変更できるようになります。
|
|
|
</para>
|
|
|
</listitem>
|
|
|
|
|
|
<listitem><para>
|
|
|
- <code>setInflector($inflector, $reference)</code> は、
|
|
|
- <code>ViewRenderer</code> で使用する独自のインフレクタを設定します。
|
|
|
+ <methodname>setInflector($inflector, $reference)</methodname> は、
|
|
|
+ <emphasis>ViewRenderer</emphasis> で使用する独自のインフレクタを設定します。
|
|
|
<varname>$reference</varname> が true の場合は、
|
|
|
対象だけでなくサフィックスやモジュールディレクトリも
|
|
|
- <code>ViewRenderer</code> のプロパティへの静的な参照とします。
|
|
|
+ <emphasis>ViewRenderer</emphasis> のプロパティへの静的な参照とします。
|
|
|
</para></listitem>
|
|
|
</itemizedlist>
|
|
|
|
|
|
@@ -434,7 +436,7 @@ $viewRenderer =
|
|
|
<title>デフォルトの検索方式</title>
|
|
|
|
|
|
<para>
|
|
|
- <code>ViewRenderer</code> は、
|
|
|
+ <emphasis>ViewRenderer</emphasis> は、
|
|
|
パスの正規化を行ってビュースクリプトによる検索を簡単にします。
|
|
|
デフォルトのルールは次のようなものです。
|
|
|
</para>
|
|
|
@@ -442,7 +444,7 @@ $viewRenderer =
|
|
|
<itemizedlist>
|
|
|
<listitem>
|
|
|
<para>
|
|
|
- <code>:module</code>:
|
|
|
+ <emphasis>:module</emphasis>:
|
|
|
MixedCase および camelCase 形式の単語がダッシュで分割され、
|
|
|
すべて小文字になります。たとえば
|
|
|
"FooBarBaz" は "foo-bar-baz" となります。
|
|
|
@@ -457,7 +459,7 @@ $viewRenderer =
|
|
|
|
|
|
<listitem>
|
|
|
<para>
|
|
|
- <code>:controller</code>:
|
|
|
+ <emphasis>:controller</emphasis>:
|
|
|
MixedCase および camelCase 形式の単語がダッシュで分割され、
|
|
|
アンダースコアはディレクトリ区切り文字に変換され、
|
|
|
すべて小文字になります。たとえば
|
|
|
@@ -475,7 +477,7 @@ $viewRenderer =
|
|
|
|
|
|
<listitem>
|
|
|
<para>
|
|
|
- <code>:action</code>:
|
|
|
+ <emphasis>:action</emphasis>:
|
|
|
MixedCase および camelCase 形式の単語がダッシュで分割され、
|
|
|
英数字以外の文字はダッシュに変換され、
|
|
|
すべて小文字になります。たとえば
|
|
|
@@ -494,7 +496,7 @@ $viewRenderer =
|
|
|
</note>
|
|
|
|
|
|
<para>
|
|
|
- <code>ViewRenderer</code> API の最後に紹介するのは、
|
|
|
+ <emphasis>ViewRenderer</emphasis> API の最後に紹介するのは、
|
|
|
実際にビュースクリプトのパスを決定するメソッドと
|
|
|
ビューのレンダリングを行うメソッドです。以下をご覧ください。
|
|
|
</para>
|
|
|
@@ -502,13 +504,13 @@ $viewRenderer =
|
|
|
<itemizedlist>
|
|
|
<listitem>
|
|
|
<para>
|
|
|
- <code>renderScript($script, $name)</code>
|
|
|
+ <methodname>renderScript($script, $name)</methodname>
|
|
|
は、指定したパスのスクリプトをレンダリングします。
|
|
|
オプションで、パスセグメントの名前を指定することもできます。
|
|
|
- このメソッドを使用する際には、<code>ViewRenderer</code>
|
|
|
+ このメソッドを使用する際には、<emphasis>ViewRenderer</emphasis>
|
|
|
はスクリプト名を自動的に決定することはありません。
|
|
|
そのかわりに、<varname>$script</varname> で指定された内容を直接
|
|
|
- ビューオブジェクトの <code>render()</code> メソッドに渡します。
|
|
|
+ ビューオブジェクトの <methodname>render()</methodname> メソッドに渡します。
|
|
|
</para>
|
|
|
|
|
|
<note><para>
|
|
|
@@ -521,16 +523,16 @@ $viewRenderer =
|
|
|
<para>
|
|
|
デフォルトでは、
|
|
|
<classname>Zend_Controller_Action::renderScript()</classname>
|
|
|
- は <code>ViewRenderer</code> の
|
|
|
- <code>renderScript()</code> メソッドへのプロキシとなります。
|
|
|
+ は <emphasis>ViewRenderer</emphasis> の
|
|
|
+ <methodname>renderScript()</methodname> メソッドへのプロキシとなります。
|
|
|
</para>
|
|
|
</note>
|
|
|
</listitem>
|
|
|
|
|
|
<listitem>
|
|
|
<para>
|
|
|
- <code>getViewScript($action, $vars)</code>
|
|
|
- は、渡されたアクションや <code>$vars</code>
|
|
|
+ <methodname>getViewScript($action, $vars)</methodname>
|
|
|
+ は、渡されたアクションや <varname>$vars</varname>
|
|
|
で指定した変数の値に基づいてビュースクリプトのパスを作成します。
|
|
|
<varname>$vars</varname> 配列のキーは、パスを指定するためのキー
|
|
|
('moduleDir'、'module'、'controller'、'action' および 'suffix')
|
|
|
@@ -539,7 +541,7 @@ $viewRenderer =
|
|
|
</para>
|
|
|
|
|
|
<para>
|
|
|
- <code>getViewScript()</code>
|
|
|
+ <methodname>getViewScript()</methodname>
|
|
|
は、<code>noController</code> フラグの内容によって
|
|
|
<code>viewScriptPathSpec</code> あるいは
|
|
|
<code>viewScriptPathNoControllerSpec</code> のいずれかを使用します。
|
|
|
@@ -558,23 +560,23 @@ $viewRenderer =
|
|
|
<para>
|
|
|
デフォルトでは、
|
|
|
<classname>Zend_Controller_Action::getViewScript()</classname>
|
|
|
- は <code>ViewRenderer</code> の
|
|
|
- <code>getViewScript()</code> メソッドへのプロキシとなります。
|
|
|
+ は <emphasis>ViewRenderer</emphasis> の
|
|
|
+ <methodname>getViewScript()</methodname> メソッドへのプロキシとなります。
|
|
|
</para>
|
|
|
</note>
|
|
|
</listitem>
|
|
|
|
|
|
<listitem>
|
|
|
<para>
|
|
|
- <code>render($action, $name, $noController)</code>
|
|
|
+ <methodname>render($action, $name, $noController)</methodname>
|
|
|
は、まず <varname>$name</varname> あるいは
|
|
|
<varname>$noController</varname> が指定されているかどうかを調べます。
|
|
|
指定されている場合は、ViewRenderer の対応するフラグ
|
|
|
(それぞれ responseSegment と noController) を設定します。
|
|
|
次に、<varname>$action</varname> 引数が指定されていれば、
|
|
|
- それを <code>getViewScript()</code> に渡します。
|
|
|
+ それを <methodname>getViewScript()</methodname> に渡します。
|
|
|
最後に、取得したビュースクリプトのパスを
|
|
|
- <code>renderScript()</code> に渡します。
|
|
|
+ <methodname>renderScript()</methodname> に渡します。
|
|
|
</para>
|
|
|
|
|
|
<note>
|
|
|
@@ -591,7 +593,7 @@ $viewRenderer =
|
|
|
<para>
|
|
|
デフォルトでは、
|
|
|
<classname>Zend_Controller_Action::render()</classname> は
|
|
|
- <code>ViewRenderer</code> の <code>render()</code>
|
|
|
+ <emphasis>ViewRenderer</emphasis> の <methodname>render()</methodname>
|
|
|
メソッドへのプロキシとなります。
|
|
|
</para>
|
|
|
</note>
|
|
|
@@ -599,11 +601,11 @@ $viewRenderer =
|
|
|
|
|
|
<listitem>
|
|
|
<para>
|
|
|
- <code>renderBySpec($action, $vars, $name)</code>
|
|
|
+ <methodname>renderBySpec($action, $vars, $name)</methodname>
|
|
|
は、パス指定用の変数を渡してビュースクリプトのパスを決定します。
|
|
|
<varname>$action</varname> および <varname>$vars</varname> の内容を
|
|
|
- <code>getScriptPath()</code> に、そしてその結果得られたスクリプトのパスと
|
|
|
- <varname>$name</varname> を <code>renderScript()</code> に渡します。
|
|
|
+ <methodname>getScriptPath()</methodname> に、そしてその結果得られたスクリプトのパスと
|
|
|
+ <varname>$name</varname> を <methodname>renderScript()</methodname> に渡します。
|
|
|
</para>
|
|
|
</listitem>
|
|
|
</itemizedlist>
|
|
|
@@ -616,7 +618,7 @@ $viewRenderer =
|
|
|
<title>基本的な使用法</title>
|
|
|
|
|
|
<para>
|
|
|
- 最も基本的な使用法は、起動ファイル内で <code>ViewRenderer</code>
|
|
|
+ 最も基本的な使用法は、起動ファイル内で <emphasis>ViewRenderer</emphasis>
|
|
|
を作成してヘルパーブローカに登録し、
|
|
|
アクションメソッドで変数の値を設定するというものです。
|
|
|
</para>
|
|
|
@@ -664,24 +666,24 @@ class Foo_BarController extends Zend_Controller_Action
|
|
|
コントローラやアクションの名前が複数の単語からなるものである場合、
|
|
|
ディスパッチャには、特定のパスや区切り文字を使用して単語を区切った
|
|
|
URL を指定しなければなりません。
|
|
|
- <code>ViewRenderer</code> は、コントローラ名の中にあるパス区切り文字を
|
|
|
+ <emphasis>ViewRenderer</emphasis> は、コントローラ名の中にあるパス区切り文字を
|
|
|
実際のパス区切り文字 ('/') に置き換え、単語区切り文字をダッシュ
|
|
|
('-') に置き換えてパスを作成します。したがって、
|
|
|
- アクション <code>/foo.bar/baz.bat</code> をコールすると
|
|
|
+ アクション <filename>/foo.bar/baz.bat</filename> をコールすると
|
|
|
FooBarController.php の
|
|
|
- <code>FooBarController::bazBatAction()</code> へディスパッチされ、
|
|
|
- <code>foo-bar/baz-bat.phtml</code> をレンダリングすることになります。
|
|
|
- また、アクション <code>/bar_baz/baz-bat</code> をコールすると
|
|
|
- <code>Bar/BazController.php</code> (パス区切り文字に注意) の
|
|
|
- <code>Bar_BazController::bazBatAction()</code>
|
|
|
- へディスパッチされ、<code>bar/baz/baz-bat.phtml</code>
|
|
|
+ <methodname>FooBarController::bazBatAction()</methodname> へディスパッチされ、
|
|
|
+ <filename>foo-bar/baz-bat.phtml</filename> をレンダリングすることになります。
|
|
|
+ また、アクション <filename>/bar_baz/baz-bat</filename> をコールすると
|
|
|
+ <filename>Bar/BazController.php</filename> (パス区切り文字に注意) の
|
|
|
+ <methodname>Bar_BazController::bazBatAction()</methodname>
|
|
|
+ へディスパッチされ、<filename>bar/baz/baz-bat.phtml</filename>
|
|
|
をレンダリングすることになります。
|
|
|
</para>
|
|
|
|
|
|
<para>
|
|
|
二番目の例では、モジュールはデフォルトモジュールのままであることに注意しましょう。
|
|
|
しかし、パス区切り文字があるために、
|
|
|
- <code>Bar/BazController.php</code> にある
|
|
|
+ <filename>Bar/BazController.php</filename> にある
|
|
|
<code>Bar_BazController</code> を受け取ることになります。
|
|
|
ビューレンダラはコントローラのディレクトリ階層を模倣します。
|
|
|
</para>
|
|
|
@@ -696,8 +698,8 @@ class Foo_BarController extends Zend_Controller_Action
|
|
|
単に何も出力したくない場合などです。
|
|
|
そんな場合には以下のいずれかの方法を使用します。
|
|
|
つまり、すべての自動レンダリングを無効にする
|
|
|
- (<code>setNeverRender()</code>) か、あるいは現在のアクションでだけ
|
|
|
- 自動レンダリングを無効にする (<code>setNoRender()</code>) かです。
|
|
|
+ (<methodname>setNeverRender()</methodname>) か、あるいは現在のアクションでだけ
|
|
|
+ 自動レンダリングを無効にする (<methodname>setNoRender()</methodname>) かです。
|
|
|
</para>
|
|
|
|
|
|
<programlisting language="php"><![CDATA[
|
|
|
@@ -726,8 +728,8 @@ class Bar_BatController extends Zend_Controller_Action
|
|
|
<note>
|
|
|
<para>
|
|
|
たいていの場合は、自動レンダリングを全体で無効にする
|
|
|
- (<code>setNeverRender()</code>) のは無意味です。
|
|
|
- なぜなら、<code>ViewRenderer</code> の唯一の存在意義が、
|
|
|
+ (<methodname>setNeverRender()</methodname>) のは無意味です。
|
|
|
+ なぜなら、<emphasis>ViewRenderer</emphasis> の唯一の存在意義が、
|
|
|
ビューオブジェクトを自動的に設定することだからです。
|
|
|
</para>
|
|
|
</note>
|
|
|
@@ -742,9 +744,9 @@ class Bar_BatController extends Zend_Controller_Action
|
|
|
どちらのアクションも同じ 'form' ビューを表示しますが、
|
|
|
そこに設定する値が異なります。
|
|
|
そんな場合に、それぞれでスクリプト名を変えるのは簡単です。
|
|
|
- <code>setScriptAction()</code> や <code>setRender()</code>
|
|
|
+ <methodname>setScriptAction()</methodname> や <methodname>setRender()</methodname>
|
|
|
を使用するか、あるいはヘルパーをメソッドとしてコールします。
|
|
|
- これは <code>setRender()</code> を起動します。
|
|
|
+ これは <methodname>setRender()</methodname> を起動します。
|
|
|
</para>
|
|
|
|
|
|
<programlisting language="php"><![CDATA[
|
|
|
@@ -786,7 +788,7 @@ class Foo_BarController extends Zend_Controller_Action
|
|
|
ビューオブジェクトの設定を変更したくなったとしましょう。
|
|
|
たとえば、ヘルパーのパスやエンコーディングを変更したくなったらどうしますか?
|
|
|
そんな場合は、コントローラに設定されているビューオブジェクトを変更するか、
|
|
|
- あるいは <code>ViewRenderer</code> の外部からビューオブジェクトを取得します。
|
|
|
+ あるいは <emphasis>ViewRenderer</emphasis> の外部からビューオブジェクトを取得します。
|
|
|
どちらも同じオブジェクトへの参照を取得することになります。
|
|
|
</para>
|
|
|
|
|
|
@@ -861,7 +863,7 @@ Zend_Controller_Action_HelperBroker::addHelper($viewRenderer);
|
|
|
<para>
|
|
|
時には、複数のビュースクリプトをひとつのアクションで処理したいこともあるでしょう。
|
|
|
これは、非常に直感的な方法で実現できます。単に
|
|
|
- <code>render()</code> を必要なだけコールすればいいのです。
|
|
|
+ <methodname>render()</methodname> を必要なだけコールすればいいのです。
|
|
|
</para>
|
|
|
|
|
|
<programlisting language="php"><![CDATA[
|