[GENERIC] Zend_Translate:
[zend.git] / documentation / manual / ja / module_specs / Zend_Application-Examples.xml
blob2f864db26006ccf3264b926db429ddd2f7e1e327
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- Reviewed: no -->
3 <!-- EN-Revision: 20763 -->
4 <sect1 id="zend.application.examples">
5     <title>例</title>
7     <para>
8         ブートストラップ・クラスそのものは、一般的にかなりごく小さいものです;
9         しばしば、それは基底ブートストラップ・クラスを拡張している中身がない単純なスタブです:
10     </para>
12     <programlisting language="php"><![CDATA[
13 class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
16 ]]></programlisting>
18     <para>
19         対応する構成ファイルを伴います:
20     </para>
22     <programlisting language="ini"><![CDATA[
23 ; APPLICATION_PATH/configs/application.ini
24 [production]
25 bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
26 bootstrap.class = "Bootstrap"
27 resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
29 [testing : production]
30 [development : production]
31 ]]></programlisting>
33     <para>
34         しかし、カスタマイズした初期化が必要ならば、2つの選択肢ががあります。
35         最初に、ブートストラップに個別のコードを指定するために
36         <emphasis>_init</emphasis>で前に置かれるメソッドを書くことができます。
37         これらのメソッドは<methodname>bootstrap()</methodname>によって呼ばれて、
38         まるでそれらが public メソッドであるように呼ばれることもできます:
39         <emphasis>bootstrap&lt;resource&gt;()</emphasis>
40         それらは、任意のオプション配列を受け取るべきです。
41     </para>
43     <para>
44         リソース・メソッドが値を返すならば、それはブートストラップでコンテナに保存されます。
45         異なるリソースが相互に作用する必要があるとき、
46         (例えば、別のリソースにそれ自体を注入している1つのリソース)
47         これは役に立つことがあります。
48         その場合、メソッド<methodname>getResource()</methodname>は、
49         それらの値を取得するために使うことができます。
50     </para>
52     <para>
53         下記の例では、リクエスト・オブジェクトを初期化するためのリソース・メソッドを示します。
54         それは、トラッキング(フロントコントローラ・リソースに依存します)、
55         ブートストラップからのリソース取得、
56         ブートストラップに保存する値の返却することの依存性を利用します。
57     </para>
59     <programlisting language="php"><![CDATA[
60 class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
62     protected function _initRequest()
63     {
64         // フロントコントローラ・インスタンスが存在することを確認して、取り込みます。
65         $this->bootstrap('FrontController');
66         $front = $this->getResource('FrontController');
68         // リクエストオブジェクトの初期化
69         $request = new Zend_Controller_Request_Http();
70         $request->setBaseUrl('/foo');
72         // フロントコントローラに追加
73         $front->setRequest($request);
75         // この値をブートストラップでコンテナの 'request' キーに保存します。
76         return $request;
77     }
79 ]]></programlisting>
81     <para>
82         この例で、<methodname>bootstrap()</methodname>を呼び出すことに注意してください;
83         フロントコントローラがこのメソッドを呼ぶ前に初期化されることを確実にします。
84         その呼び出しは、クラスのリソースまたは別のメソッドいずれかの引き金となるかもしれません。
85     </para>
87     <para>
88         リソース・プラグインは、特定の初期化を実行するオブジェクトで、
89         それは指定されるかもしれません:
90     </para>
92     <itemizedlist>
93         <listitem>
94             <para>
95                 <classname>Zend_Application</classname>オブジェクトが初期化されるとき
96             </para>
97         </listitem>
99         <listitem>
100             <para>
101                 ブートストラップオブジェクトの初期化中
102             </para>
103         </listitem>
105         <listitem>
106             <para>
107                 メソッド呼び出しを介してそれらをブートストラップ・オブジェクトで明示的に使用可能にすることによって
108             </para>
109         </listitem>
110     </itemizedlist>
112     <para>
113         呼出し元とオプションを注入でき、
114         <methodname>init()</methodname>メソッドをもつことを
115         簡単に明確にする
116         <classname>Zend_Application_Resource_ResourceAbstract</classname>を
117         リソース・プラグインでは実装します。
118         例えば、カスタマイズした "View" ブートストラップ・リソースは、
119         以下のように見えるかもしれません:
120     </para>
122     <programlisting language="php"><![CDATA[
123 class My_Bootstrap_Resource_View
124     extends Zend_Application_Resource_ResourceAbstract
126     public function init()
127     {
128         $view = new Zend_View($this->getOptions());
129         Zend_Dojo::enableView($view);
131         $view->doctype('XHTML1_STRICT');
132         $view->headTitle()->setSeparator(' - ')->append('My Site');
133         $view->headMeta()->appendHttpEquiv('Content-Type',
134                                            'text/html; charset=utf-8');
136         $view->dojo()->setDjConfigOption('parseOnLoad', true)
137                      ->setLocalPath('/js/dojo/dojo.js')
138                      ->registerModulePath('../spindle', 'spindle')
139                      ->addStylesheetModule('spindle.themes.spindle')
140                      ->requireModule('spindle.main')
141                      ->disable();
143         $viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper(
144             'ViewRenderer'
145         );
146         $viewRenderer->setView($view);
148         return $view;
149     }
151 ]]></programlisting>
153     <para>
154         これを使うようにブートストラップに命じるために、
155         リソースプラグインのクラス名か、
156         またはプラグイン・ローダ・プレフィックス・パスと
157         リソースプラグインの短い名前(例えば "view" )の組み合わせを
158         提供する必要があるでしょう:
159     </para>
161     <programlisting language="php"><![CDATA[
162 $application = new Zend_Application(
163     APPLICATION_ENV,
164     array(
165         'resources' => array(
166             'My_Bootstrap_Resource_View' => array(), // 完全クラス名;
167             'view' => array(),                       // または短い名前
169             'FrontController' => array(
170                 'controllerDirectory' => APPLICATION_PATH . '/controllers',
171             ),
172         ),
174         // 短い名前のためにプラグインパスを定義します:
175         'pluginPaths = array(
176             'My_Bootstrap_Resource' => 'My/Bootstrap/Resource',
177         )
178     )
180 ]]></programlisting>
182     <para>
183         リソースは、親ブートストラップにアクセスすることによって、
184         他のリソースとイニシャライザを呼び出すことができます:
185     </para>
187     <programlisting language="php"><![CDATA[
188 class My_Bootstrap_Resource_Layout
189     extends Zend_Application_Resource_ResourceAbstract
191     public function init()
192     {
193         // ビューが初期化されたか確認
194         $this->getBootstrap()->bootstrap('view');
196         // ビューオブジェクトを取得:
197         $view = $this->getBootstrap()->getResource('view');
199         // ...
200     }
202 ]]></programlisting>
204     <para>
205         通常の使用法では、アプリケーションをインスタンス化して、
206         起動して実行するでしょう:
207     </para>
209     <programlisting language="php"><![CDATA[
210 $application = new Zend_Application(...);
211 $application->bootstrap()
212             ->run();
213 ]]></programlisting>
215     <para>
216         カスタマイズしたスクリプトについては、
217         特定のリソースを単純に初期化する必要があるかもしれません:
218     </para>
220     <programlisting language="php"><![CDATA[
221 $application = new Zend_Application(...);
222 $application->getBootstrap()->bootstrap('db');
224 $service = new Zend_XmlRpc_Server();
225 $service->setClass('Foo');  // データベースの利用
226 echo $service->handle();
227 ]]></programlisting>
229     <para>
230         内部のメソッドまたはリソースを呼び出す
231         <methodname>bootstrap()</methodname>メソッドを使用する代わりに、
232         オーバーローディングも使うかもしれません:
233     </para>
235     <programlisting language="php"><![CDATA[
236 $application = new Zend_Application(...);
237 $application->getBootstrap()->bootstrapDb();
238 ]]></programlisting>
239 </sect1>