[GENERIC] Zend_Translate:
[zend.git] / documentation / manual / ja / module_specs / Zend_Application-QuickStart.xml
blobe464a3cbbabd650f54cca6f9795925309b4cc561
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- Reviewed: no -->
3 <!-- EN-Revision: 20763 -->
4 <sect1 id="zend.application.quick-start">
5     <title>Zend_Application クイックスタート</title>
7     <para>
8         <classname>Zend_Application</classname>で始める方法は2つあります、
9         そして、それらはプロジェクトを始める方法によって決まります。
10         いずれにせよ、どの場合も、<classname>Bootstrap</classname>クラスと関連する
11         構成ファイルを作成することから始めます。
12     </para>
14     <para>
15         プロジェクトを作成するために<classname>Zend_Tool</classname>を使う予定なら、
16         引き続き、下記をご覧下さい。
17         <classname>Zend_Application</classname>を既存のプロジェクトに追加するなら、
18         <link linkend="zend.application.quick-start.manual">読み飛ばして先に進み</link>たいことでしょう。
19     </para>
21     <sect2 id="zend.application.quick-start.zend-tool">
22         <title>Zend_Toolの利用</title>
24         <para>
25             <classname>Zend_Application</classname>を使い始めるために最も早い方法は、
26             プロジェクトを生成するために<classname>Zend_Tool</classname>を使うことです。
27             これにより、<classname>Bootstrap</classname>クラスやファイルも生成されます。
28         </para>
30         <para>
31             プロジェクトを作成するために、(*nix システムで)<command>zf</command>コマンドを実行してください:
32         </para>
34         <programlisting language="sh"><![CDATA[
35 % zf create project newproject
36 ]]></programlisting>
38         <para>
39             またはWindowsの<filename>zf.bat</filename>コマンド:
40         </para>
42         <programlisting language="dos"><![CDATA[
43 C:> zf.bat create project newproject
44 ]]></programlisting>
46         <para>
47             共に、下記のようなプロジェクト構造を作成します:
48         </para>
50         <programlisting language="text"><![CDATA[
51 newproject
52 |-- application
53 |   |-- Bootstrap.php
54 |   |-- configs
55 |   |   `-- application.ini
56 |   |-- controllers
57 |   |   |-- ErrorController.php
58 |   |   `-- IndexController.php
59 |   |-- models
60 |   `-- views
61 |       |-- helpers
62 |       `-- scripts
63 |           |-- error
64 |           |   `-- error.phtml
65 |           `-- index
66 |               `-- index.phtml
67 |-- library
68 |-- public
69 |   `-- index.php
70 `-- tests
71     |-- application
72     |   `-- bootstrap.php
73     |-- library
74     |   `-- bootstrap.php
75     `-- phpunit.xml
76 ]]></programlisting>
78         <para>
79             上記の図の中で、ブートストラップは<filename>newproject/application/Bootstrap.php</filename>にあり、
80             最初は以下のように見えます:
81         </para>
83         <programlisting language="php"><![CDATA[
84 class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
87 ]]></programlisting>
89         <para>
90             構成ファイル、<filename>newproject/application/configs/application.ini</filename>にも気付くでしょう。
91             それは下記のような内容です:
92         </para>
94         <programlisting language="dosini"><![CDATA[
95 [production]
96 phpSettings.display_startup_errors = 0
97 phpSettings.display_errors = 0
98 includePaths.library = APPLICATION_PATH "/../library"
99 bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
100 bootstrap.class = "Bootstrap"
101 resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
103 [staging : production]
105 [testing : production]
106 phpSettings.display_startup_errors = 1
107 phpSettings.display_errors = 1
109 [development : production]
110 phpSettings.display_startup_errors = 1
111 phpSettings.display_errors = 1
112 ]]></programlisting>
114         <para>
115             この構成ファイルの設定は全て、
116             <classname>Zend_Application</classname>及びブートストラップで利用するためのものです。
117         </para>
119         <para>
120             他に興味を惹くファイルは
121             <filename>newproject/public/index.php</filename>で、
122             それは<classname>Zend_Application</classname>を呼び出してディスパッチします。
123         </para>
125         <programlisting language="php"><![CDATA[
126 // アプリケーション・ディレクトリへのパスを定義します
127 defined('APPLICATION_PATH')
128     || define('APPLICATION_PATH',
129               realpath(dirname(__FILE__) . '/../application'));
131 // アプリケーション環境を定義します
132 defined('APPLICATION_ENV')
133     || define('APPLICATION_ENV',
134               (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV')
135                                          : 'production'));
137 /** Zend_Application */
138 require_once 'Zend/Application.php';
140 // アプリケーション及びブートストラップを作成して、実行します
141 $application = new Zend_Application(
142     APPLICATION_ENV,
143     APPLICATION_PATH . '/configs/application.ini'
145 $application->bootstrap()
146             ->run();
147 ]]></programlisting>
149         <para>
150             クイックスタートを続けるには、
151             <link
152             linkend="zend.application.quick-start.resources">リソース節まで読み飛ばし</link>てください。
153         </para>
154     </sect2>
156     <sect2 id="zend.application.quick-start.manual">
157         <title>アプリケーションにZend_Applicationを追加する</title>
159         <para>
160             <classname>Zend_Application</classname>の基本は本当に単純です:
161         </para>
163         <itemizedlist>
164             <listitem>
165                 <para>
166                     <classname>Bootstrap</classname>クラスを持つ
167                     <filename>application/Bootstrap.php</filename>ファイルを作成します。
168                 </para>
169             </listitem>
171             <listitem>
172                 <para>
173                     <classname>Zend_Application</classname>に必要な基本的な設定を持つ構成ファイル、
174                     <filename>application/configs/application.ini</filename>を作成します。
175                 </para>
176             </listitem>
178             <listitem>
179                 <para>
180                     <classname>Zend_Application</classname>を利用するために、
181                     <filename>public/index.php</filename>を変更します。
182                 </para>
183             </listitem>
184         </itemizedlist>
186         <para>
187             初めに、<classname>Bootstrap</classname>クラスを作成します。
188             <filename>application/Bootstrap.php</filename>ファイルを下記の内容で作成します。
189         </para>
191         <programlisting language="php"><![CDATA[
192 class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
195 ]]></programlisting>
197         <para>
198             次に、構成を作成します。
199             このチュートリアルでは<acronym>INI</acronym>形式の構成を使います;
200             もちろん、<acronym>XML</acronym>や<acronym>PHP</acronym>構成ファイルも同様に利用できます。
201             <filename>application/configs/application.ini</filename>ファイルを作成して、
202             下記の内容にしてください:
203         </para>
205         <programlisting language="dosini"><![CDATA[
206 [production]
207 phpSettings.display_startup_errors = 0
208 phpSettings.display_errors = 0
209 includePaths.library = APPLICATION_PATH "/../library"
210 bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
211 bootstrap.class = "Bootstrap"
212 resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
214 [staging : production]
216 [testing : production]
217 phpSettings.display_startup_errors = 1
218 phpSettings.display_errors = 1
220 [development : production]
221 phpSettings.display_startup_errors = 1
222 phpSettings.display_errors = 1
223 ]]></programlisting>
225         <para>
226             次に入り口となるスクリプト、<filename>public/index.php</filename>を変更しましょう。
227             もしファイルが存在しなければ、作成してください;
228             さもなければ、下記の内容でファイルを置き換えてください:
229         </para>
231         <programlisting language="php"><![CDATA[
232 // アプリケーション・ディレクトリへのパスを定義します
233 defined('APPLICATION_PATH')
234     || define('APPLICATION_PATH',
235               realpath(dirname(__FILE__) . '/../application'));
237 // アプリケーション環境を定義します
238 defined('APPLICATION_ENV')
239     || define('APPLICATION_ENV',
240               (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV')
241                                          : 'production'));
243 // 一般的に、library/ ディレクトリーをinclude_pathに追加したいでしょう
244 // 特にそれがインストールしたZFを含むならば
245 set_include_path(implode(PATH_SEPARATOR, array(
246     dirname(dirname(__FILE__)) . '/library',
247     get_include_path(),
248 )));
250 /** Zend_Application */
251 require_once 'Zend/Application.php';
253 // アプリケーション及びブートストラップを作成して、実行します
254 $application = new Zend_Application(
255     APPLICATION_ENV,
256     APPLICATION_PATH . '/configs/application.ini'
258 $application->bootstrap()
259             ->run();
260 ]]></programlisting>
262         <para>
263             アプリケーション環境定数が環境変数 "APPLICATION_ENV" を探すことに気づくかもしれません。
264             我々は、これをウェブサーバ環境で設定することを勧めます。
265             Apacheでは、vhost定義、または、<filename>.htaccess</filename>ファイルのいずれかで設定できます。
266             我々は、<filename>public/.htaccess</filename>ファイルとして以下の内容を推奨します:
267         </para>
269         <programlisting language="conf"><![CDATA[
270 SetEnv APPLICATION_ENV development
272 RewriteEngine On
273 RewriteCond %{REQUEST_FILENAME} -s [OR]
274 RewriteCond %{REQUEST_FILENAME} -l [OR]
275 RewriteCond %{REQUEST_FILENAME} -d
276 RewriteRule ^.*$ - [NC,L]
277 RewriteRule ^.*$ index.php [NC,L]
278 ]]></programlisting>
280         <note>
281             <title>mod_rewriteについて学ぶ</title>
283             <para>
284                 上記の書き換えルールでは、バーチャル・ホスト・ドキュメント・ルートの配下の
285                 どのファイルでもアクセスが許可されます。
286                 このように公開されたくないファイルがあるならば、より限定的なルールにしたいかもしれません。
287                 <ulink
288                     url="http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html">mod_rewriteについてより学ぶ</ulink>
289                 ためにはApache ウェブサイトを訪れてください。
290             </para>
291         </note>
293         <para>
294             ここまでで、
295             <classname>Zend_Application</classname>をすっかり利用し始められるようになっています。
296         </para>
297     </sect2>
299     <sect2 id="zend.application.quick-start.resources">
300         <title>リソースの追加と作成</title>
302         <para>
303             上記の手引きに従うと、ブートストラップ・クラスはフロントコントローラを利用します。
304             そして、それが動くとき、フロントコントローラをディスパッチします。
305             しかし、おそらく、これより少し多くの構成を必要とするでしょう。
306         </para>
308         <para>
309             この節では、アプリケーションにリソースを2つ追加することに目を向けましょう。
310             最初に、レイアウトを準備して、ビュー・オブジェクトをカスタマイズします。
311         </para>
313         <para>
314             <classname>Zend_Application</classname>で提供される標準的なリソースのうちの1つは、
315             「レイアウト」リソースです。
316             このリソースでは、<classname>Zend_Layout</classname>インスタンスを構成するために使う構成値を
317             あなたが定義することをあてにしています。
318         </para>
320         <para>
321             これを使うためにすべきことは、構成ファイルを更新することです。
322         </para>
324         <programlisting language="dosini"><![CDATA[
325 [production]
326 phpSettings.display_startup_errors = 0
327 phpSettings.display_errors = 0
328 bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
329 bootstrap.class = "Bootstrap"
330 resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
331 ; ADD THE FOLLOWING LINES
332 resources.layout.layout = "layout"
333 resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts"
335 [staging : production]
337 [testing : production]
338 phpSettings.display_startup_errors = 1
339 phpSettings.display_errors = 1
341 [development : production]
342 phpSettings.display_startup_errors = 1
343 phpSettings.display_errors = 1
344 ]]></programlisting>
346         <para>
347             もしまだ無ければ、
348             <filename>application/layouts/scripts/</filename>ディレクトリ、
349             及びそのディレクトリ内に<filename>layout.phtml</filename>ファイルを作成してください。
350             以下の通りで、レイアウトを良く始められます。
351             (そして、それは次に含まれるビュー・リソースと結びつきます):
352         </para>
354         <programlisting language="php"><![CDATA[
355 <?php echo $this->doctype() ?>
356 <html>
357 <head>
358     <?php echo $this->headTitle() ?>
359     <?php echo $this->headLink() ?>
360     <?php echo $this->headStyle() ?>
361     <?php echo $this->headScript() ?>
362 </head>
363 <body>
364     <?php echo $this->layout()->content ?>
365 </body>
366 </html>
367 ]]></programlisting>
369         <para>
370             ここまでで、レイアウトを役立てられるようになっています。
371         </para>
373         <para>
374             次に、カスタム・ビューリソースを追加します。
375             ビューを初期化する際に、
376             <acronym>HTML</acronym> DocType及び
377             <acronym>HTML</acronym>の head で使用するタイトルのデフォルト値を設定を希望します。
378             これは、メソッドを追加する<classname>Bootstrap</classname>クラスを編集することにより成就できます:
379         </para>
381         <programlisting language="php"><![CDATA[
382 class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
384     protected function _initView()
385     {
386         // ビューを初期化します
387         $view = new Zend_View();
388         $view->doctype('XHTML1_STRICT');
389         $view->headTitle('My First Zend Framework Application');
391         // それを ViewRenderer に追加します
392         $viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper(
393             'ViewRenderer'
394         );
395         $viewRenderer->setView($view);
397         // ブートストラップで保存できるように返します
398         return $view;
399     }
401 ]]></programlisting>
403         <para>
404             このメソッドはアプリケーションを起動する際に自動的に実行されて、
405             アプリケーションの必要性に従ってビューが初期化されることを確実にします。
406         </para>
407     </sect2>
409     <sect2 id="zend.application.quick-start.next-steps">
410         <title>Zend_Applicationを使った次のステップ</title>
412         <para>
413             上記は、<classname>Zend_Application</classname>で始めるようにさせるべきです。
414             そして、アプリケーション・ブートストラップを作成しだすべきです。
415             ここから、リソース・メソッドや、再利用性を最大にするために、リソース・プラグイン・クラスを作成し始めるべきです。
416             より学ぶために、引き続きご覧下さい!
417         </para>
418     </sect2>
419 </sect1>