1 <?xml version="1.0" encoding="UTF-8"?>
3 <!-- EN-Revision: 20763 -->
4 <sect1 id="zend.application.quick-start">
5 <title>Zend_Application クイックスタート</title>
8 <classname>Zend_Application</classname>で始める方法は2つあります、
9 そして、それらはプロジェクトを始める方法によって決まります。
10 いずれにせよ、どの場合も、<classname>Bootstrap</classname>クラスと関連する
15 プロジェクトを作成するために<classname>Zend_Tool</classname>を使う予定なら、
17 <classname>Zend_Application</classname>を既存のプロジェクトに追加するなら、
18 <link linkend="zend.application.quick-start.manual">読み飛ばして先に進み</link>たいことでしょう。
21 <sect2 id="zend.application.quick-start.zend-tool">
22 <title>Zend_Toolの利用</title>
25 <classname>Zend_Application</classname>を使い始めるために最も早い方法は、
26 プロジェクトを生成するために<classname>Zend_Tool</classname>を使うことです。
27 これにより、<classname>Bootstrap</classname>クラスやファイルも生成されます。
31 プロジェクトを作成するために、(*nix システムで)<command>zf</command>コマンドを実行してください:
34 <programlisting language="sh"><![CDATA[
35 % zf create project newproject
39 またはWindowsの<filename>zf.bat</filename>コマンド:
42 <programlisting language="dos"><![CDATA[
43 C:> zf.bat create project newproject
47 共に、下記のようなプロジェクト構造を作成します:
50 <programlisting language="text"><![CDATA[
55 | | `-- application.ini
57 | | |-- ErrorController.php
58 | | `-- IndexController.php
79 上記の図の中で、ブートストラップは<filename>newproject/application/Bootstrap.php</filename>にあり、
83 <programlisting language="php"><![CDATA[
84 class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
90 構成ファイル、<filename>newproject/application/configs/application.ini</filename>にも気付くでしょう。
94 <programlisting language="dosini"><![CDATA[
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
116 <classname>Zend_Application</classname>及びブートストラップで利用するためのものです。
121 <filename>newproject/public/index.php</filename>で、
122 それは<classname>Zend_Application</classname>を呼び出してディスパッチします。
125 <programlisting language="php"><![CDATA[
126 // アプリケーション・ディレクトリへのパスを定義します
127 defined('APPLICATION_PATH')
128 || define('APPLICATION_PATH',
129 realpath(dirname(__FILE__) . '/../application'));
132 defined('APPLICATION_ENV')
133 || define('APPLICATION_ENV',
134 (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV')
137 /** Zend_Application */
138 require_once 'Zend/Application.php';
140 // アプリケーション及びブートストラップを作成して、実行します
141 $application = new Zend_Application(
143 APPLICATION_PATH . '/configs/application.ini'
145 $application->bootstrap()
152 linkend="zend.application.quick-start.resources">リソース節まで読み飛ばし</link>てください。
156 <sect2 id="zend.application.quick-start.manual">
157 <title>アプリケーションにZend_Applicationを追加する</title>
160 <classname>Zend_Application</classname>の基本は本当に単純です:
166 <classname>Bootstrap</classname>クラスを持つ
167 <filename>application/Bootstrap.php</filename>ファイルを作成します。
173 <classname>Zend_Application</classname>に必要な基本的な設定を持つ構成ファイル、
174 <filename>application/configs/application.ini</filename>を作成します。
180 <classname>Zend_Application</classname>を利用するために、
181 <filename>public/index.php</filename>を変更します。
187 初めに、<classname>Bootstrap</classname>クラスを作成します。
188 <filename>application/Bootstrap.php</filename>ファイルを下記の内容で作成します。
191 <programlisting language="php"><![CDATA[
192 class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
199 このチュートリアルでは<acronym>INI</acronym>形式の構成を使います;
200 もちろん、<acronym>XML</acronym>や<acronym>PHP</acronym>構成ファイルも同様に利用できます。
201 <filename>application/configs/application.ini</filename>ファイルを作成して、
205 <programlisting language="dosini"><![CDATA[
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
226 次に入り口となるスクリプト、<filename>public/index.php</filename>を変更しましょう。
227 もしファイルが存在しなければ、作成してください;
228 さもなければ、下記の内容でファイルを置き換えてください:
231 <programlisting language="php"><![CDATA[
232 // アプリケーション・ディレクトリへのパスを定義します
233 defined('APPLICATION_PATH')
234 || define('APPLICATION_PATH',
235 realpath(dirname(__FILE__) . '/../application'));
238 defined('APPLICATION_ENV')
239 || define('APPLICATION_ENV',
240 (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV')
243 // 一般的に、library/ ディレクトリーをinclude_pathに追加したいでしょう
244 // 特にそれがインストールしたZFを含むならば
245 set_include_path(implode(PATH_SEPARATOR, array(
246 dirname(dirname(__FILE__)) . '/library',
250 /** Zend_Application */
251 require_once 'Zend/Application.php';
253 // アプリケーション及びブートストラップを作成して、実行します
254 $application = new Zend_Application(
256 APPLICATION_PATH . '/configs/application.ini'
258 $application->bootstrap()
263 アプリケーション環境定数が環境変数 "APPLICATION_ENV" を探すことに気づくかもしれません。
264 我々は、これをウェブサーバ環境で設定することを勧めます。
265 Apacheでは、vhost定義、または、<filename>.htaccess</filename>ファイルのいずれかで設定できます。
266 我々は、<filename>public/.htaccess</filename>ファイルとして以下の内容を推奨します:
269 <programlisting language="conf"><![CDATA[
270 SetEnv APPLICATION_ENV development
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]
281 <title>mod_rewriteについて学ぶ</title>
284 上記の書き換えルールでは、バーチャル・ホスト・ドキュメント・ルートの配下の
286 このように公開されたくないファイルがあるならば、より限定的なルールにしたいかもしれません。
288 url="http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html">mod_rewriteについてより学ぶ</ulink>
289 ためにはApache ウェブサイトを訪れてください。
295 <classname>Zend_Application</classname>をすっかり利用し始められるようになっています。
299 <sect2 id="zend.application.quick-start.resources">
300 <title>リソースの追加と作成</title>
303 上記の手引きに従うと、ブートストラップ・クラスはフロントコントローラを利用します。
304 そして、それが動くとき、フロントコントローラをディスパッチします。
305 しかし、おそらく、これより少し多くの構成を必要とするでしょう。
309 この節では、アプリケーションにリソースを2つ追加することに目を向けましょう。
310 最初に、レイアウトを準備して、ビュー・オブジェクトをカスタマイズします。
314 <classname>Zend_Application</classname>で提供される標準的なリソースのうちの1つは、
316 このリソースでは、<classname>Zend_Layout</classname>インスタンスを構成するために使う構成値を
321 これを使うためにすべきことは、構成ファイルを更新することです。
324 <programlisting language="dosini"><![CDATA[
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
348 <filename>application/layouts/scripts/</filename>ディレクトリ、
349 及びそのディレクトリ内に<filename>layout.phtml</filename>ファイルを作成してください。
350 以下の通りで、レイアウトを良く始められます。
351 (そして、それは次に含まれるビュー・リソースと結びつきます):
354 <programlisting language="php"><![CDATA[
355 <?php echo $this->doctype() ?>
358 <?php echo $this->headTitle() ?>
359 <?php echo $this->headLink() ?>
360 <?php echo $this->headStyle() ?>
361 <?php echo $this->headScript() ?>
364 <?php echo $this->layout()->content ?>
370 ここまでで、レイアウトを役立てられるようになっています。
374 次に、カスタム・ビューリソースを追加します。
376 <acronym>HTML</acronym> DocType及び
377 <acronym>HTML</acronym>の head で使用するタイトルのデフォルト値を設定を希望します。
378 これは、メソッドを追加する<classname>Bootstrap</classname>クラスを編集することにより成就できます:
381 <programlisting language="php"><![CDATA[
382 class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
384 protected function _initView()
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(
395 $viewRenderer->setView($view);
397 // ブートストラップで保存できるように返します
404 このメソッドはアプリケーションを起動する際に自動的に実行されて、
405 アプリケーションの必要性に従ってビューが初期化されることを確実にします。
409 <sect2 id="zend.application.quick-start.next-steps">
410 <title>Zend_Applicationを使った次のステップ</title>
413 上記は、<classname>Zend_Application</classname>で始めるようにさせるべきです。
414 そして、アプリケーション・ブートストラップを作成しだすべきです。
415 ここから、リソース・メソッドや、再利用性を最大にするために、リソース・プラグイン・クラスを作成し始めるべきです。