|
|
@@ -0,0 +1,413 @@
|
|
|
+<?xml version="1.0" encoding="UTF-8"?>
|
|
|
+<!-- Reviewed: no -->
|
|
|
+<!-- EN-Revision: 16727 -->
|
|
|
+<sect1 id="zend.application.quick-start">
|
|
|
+ <title>Zend_Application クイックスタート</title>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ <classname>Zend_Application</classname>で始める方法は2つあります、
|
|
|
+ そして、それらはプロジェクトを始める方法によって決まります。
|
|
|
+ いずれにせよ、どの場合も、<classname>Bootstrap</classname>クラスと関連する
|
|
|
+ 構成ファイルを作成することから始めます。
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ プロジェクトを作成するために<classname>Zend_Tool</classname>を使う予定なら、
|
|
|
+ 引き続き、下記をご覧下さい。
|
|
|
+ <classname>Zend_Application</classname>を既存のプロジェクトに追加するなら、
|
|
|
+ <link linkend="zend.application.quick-start.manual">読み飛ばして先に進み</link>たいことでしょう。
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <sect2 id="zend.application.quick-start.zend-tool">
|
|
|
+ <title>Zend_Toolの利用</title>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ <classname>Zend_Application</classname>を使い始めるために最も早い方法は、
|
|
|
+ プロジェクトを生成するために<classname>Zend_Tool</classname>を使うことです。
|
|
|
+ これにより、<classname>Bootstrap</classname>クラスやファイルも生成されます。
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ プロジェクトを作成するために、(*nix システムで)<command>zf</command>コマンドを実行してください:
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <programlisting language="sh"><![CDATA[
|
|
|
+% zf create project newproject
|
|
|
+]]></programlisting>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ またはWindowsの<filename>zf.bat</filename>コマンド:
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <programlisting language="dos"><![CDATA[
|
|
|
+C:> zf.bat create project newproject
|
|
|
+]]></programlisting>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ 共に、下記のようなプロジェクト構造を作成します:
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <programlisting language="text"><![CDATA[
|
|
|
+newproject
|
|
|
+|-- application
|
|
|
+| |-- Bootstrap.php
|
|
|
+| |-- configs
|
|
|
+| | `-- application.ini
|
|
|
+| |-- controllers
|
|
|
+| | |-- ErrorController.php
|
|
|
+| | `-- IndexController.php
|
|
|
+| |-- models
|
|
|
+| `-- views
|
|
|
+| |-- helpers
|
|
|
+| `-- scripts
|
|
|
+| |-- error
|
|
|
+| | `-- error.phtml
|
|
|
+| `-- index
|
|
|
+| `-- index.phtml
|
|
|
+|-- library
|
|
|
+|-- public
|
|
|
+| `-- index.php
|
|
|
+`-- tests
|
|
|
+ |-- application
|
|
|
+ | `-- bootstrap.php
|
|
|
+ |-- library
|
|
|
+ | `-- bootstrap.php
|
|
|
+ `-- phpunit.xml
|
|
|
+]]></programlisting>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ 上記の図の中で、ブートストラップは<filename>newproject/application/Bootstrap.php</filename>にあり、
|
|
|
+ 最初は以下のように見えます:
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <programlisting language="php"><![CDATA[
|
|
|
+class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
|
|
|
+{
|
|
|
+}
|
|
|
+]]></programlisting>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ 構成ファイル、<filename>newproject/application/configs/application.ini</filename>にも気付くでしょう。
|
|
|
+ それは下記のような内容です:
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <programlisting language="dosini"><![CDATA[
|
|
|
+[production]
|
|
|
+phpSettings.display_startup_errors = 0
|
|
|
+phpSettings.display_errors = 0
|
|
|
+includePaths.library = APPLICATION_PATH "/../library"
|
|
|
+bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
|
|
|
+bootstrap.class = "Bootstrap"
|
|
|
+resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
|
|
|
+
|
|
|
+[staging : production]
|
|
|
+
|
|
|
+[testing : production]
|
|
|
+phpSettings.display_startup_errors = 1
|
|
|
+phpSettings.display_errors = 1
|
|
|
+
|
|
|
+[development : production]
|
|
|
+phpSettings.display_startup_errors = 1
|
|
|
+phpSettings.display_errors = 1
|
|
|
+]]></programlisting>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ この構成ファイルの設定は全て、
|
|
|
+ <classname>Zend_Application</classname>及びブートストラップで利用するためのものです。
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ 他に興味を惹くファイルは
|
|
|
+ <filename>newproject/public/index.php</filename>で、
|
|
|
+ それは<classname>Zend_Application</classname>を呼び出してディスパッチします。
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <programlisting language="php"><![CDATA[
|
|
|
+// アプリケーション・ディレクトリへのパスを定義します
|
|
|
+defined('APPLICATION_PATH')
|
|
|
+ || define('APPLICATION_PATH',
|
|
|
+ realpath(dirname(__FILE__) . '/../application'));
|
|
|
+
|
|
|
+// アプリケーション環境を定義します
|
|
|
+defined('APPLICATION_ENV')
|
|
|
+ || define('APPLICATION_ENV',
|
|
|
+ (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV')
|
|
|
+ : 'production'));
|
|
|
+
|
|
|
+/** Zend_Application */
|
|
|
+require_once 'Zend/Application.php';
|
|
|
+
|
|
|
+// アプリケーション及びブートストラップを作成して、実行します
|
|
|
+$application = new Zend_Application(
|
|
|
+ APPLICATION_ENV,
|
|
|
+ APPLICATION_PATH . '/configs/application.ini'
|
|
|
+);
|
|
|
+$application->bootstrap()
|
|
|
+ ->run();
|
|
|
+]]></programlisting>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ クイックスタートを続けるには、
|
|
|
+ <link
|
|
|
+ linkend="zend.application.quick-start.resources">リソース節まで読み飛ばし</link>てください。
|
|
|
+ </para>
|
|
|
+ </sect2>
|
|
|
+
|
|
|
+ <sect2 id="zend.application.quick-start.manual">
|
|
|
+ <title>アプリケーションにZend_Applicationを追加する</title>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ <classname>Zend_Application</classname>の基本は本当に単純です:
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <itemizedlist>
|
|
|
+ <listitem><para>
|
|
|
+ <classname>Bootstrap</classname>クラスを持つ
|
|
|
+ <filename>application/Bootstrap.php</filename>ファイルを作成します。
|
|
|
+ </para></listitem>
|
|
|
+
|
|
|
+ <listitem><para>
|
|
|
+ <classname>Zend_Application</classname>に必要な基本的な設定を持つ構成ファイル、
|
|
|
+ <filename>application/configs/application.ini</filename>を作成します。
|
|
|
+ </para></listitem>
|
|
|
+
|
|
|
+ <listitem><para>
|
|
|
+ <classname>Zend_Application</classname>を利用するために、
|
|
|
+ <filename>public/index.php</filename>を変更します。
|
|
|
+ </para></listitem>
|
|
|
+ </itemizedlist>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ 初めに、<classname>Bootstrap</classname>クラスを作成します。
|
|
|
+ <filename>application/Bootstrap.php</filename>ファイルを下記の内容で作成します。
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <programlisting language="php"><![CDATA[
|
|
|
+class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
|
|
|
+{
|
|
|
+}
|
|
|
+]]></programlisting>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ 次に、構成を作成します。
|
|
|
+ このチュートリアルでは<acronym>INI</acronym>形式の構成を使います;
|
|
|
+ もちろん、<acronym>XML</acronym>や<acronym>PHP</acronym>構成ファイルも同様に利用できます。
|
|
|
+ <filename>application/configs/application.ini</filename>ファイルを作成して、
|
|
|
+ 下記の内容にしてください:
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <programlisting language="dosini"><![CDATA[
|
|
|
+[production]
|
|
|
+phpSettings.display_startup_errors = 0
|
|
|
+phpSettings.display_errors = 0
|
|
|
+includePaths.library = APPLICATION_PATH "/../library"
|
|
|
+bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
|
|
|
+bootstrap.class = "Bootstrap"
|
|
|
+resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
|
|
|
+
|
|
|
+[staging : production]
|
|
|
+
|
|
|
+[testing : production]
|
|
|
+phpSettings.display_startup_errors = 1
|
|
|
+phpSettings.display_errors = 1
|
|
|
+
|
|
|
+[development : production]
|
|
|
+phpSettings.display_startup_errors = 1
|
|
|
+phpSettings.display_errors = 1
|
|
|
+]]></programlisting>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ 次に入り口となるスクリプト、<filename>public/index.php</filename>を変更しましょう。
|
|
|
+ もしファイルが存在しなければ、作成してください;
|
|
|
+ さもなければ、下記の内容でファイルを置き換えてください:
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <programlisting language="php"><![CDATA[
|
|
|
+// アプリケーション・ディレクトリへのパスを定義します
|
|
|
+defined('APPLICATION_PATH')
|
|
|
+ || define('APPLICATION_PATH',
|
|
|
+ realpath(dirname(__FILE__) . '/../application'));
|
|
|
+
|
|
|
+// アプリケーション環境を定義します
|
|
|
+defined('APPLICATION_ENV')
|
|
|
+ || define('APPLICATION_ENV',
|
|
|
+ (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV')
|
|
|
+ : 'production'));
|
|
|
+
|
|
|
+// 一般的に、library/ ディレクトリーをinclude_pathに追加したいでしょう
|
|
|
+// 特にそれがインストールしたZFを含むならば
|
|
|
+set_include_path(implode(PATH_SEPARATOR, array(
|
|
|
+ dirname(dirname(__FILE__)) . '/library',
|
|
|
+ get_include_path(),
|
|
|
+)));
|
|
|
+
|
|
|
+/** Zend_Application */
|
|
|
+require_once 'Zend/Application.php';
|
|
|
+
|
|
|
+// アプリケーション及びブートストラップを作成して、実行します
|
|
|
+$application = new Zend_Application(
|
|
|
+ APPLICATION_ENV,
|
|
|
+ APPLICATION_PATH . '/configs/application.ini'
|
|
|
+);
|
|
|
+$application->bootstrap()
|
|
|
+ ->run();
|
|
|
+]]></programlisting>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ アプリケーション環境定数が環境変数 "APPLICATION_ENV" を探すことに気づくかもしれません。
|
|
|
+ 我々は、これをウェブサーバ環境で設定することを勧めます。
|
|
|
+ Apacheでは、vhost定義、または、<filename>.htaccess</filename>ファイルのいずれかで設定できます。
|
|
|
+ 我々は、<filename>public/.htaccess</filename>ファイルとして以下の内容を推奨します:
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <programlisting language="conf"><![CDATA[
|
|
|
+SetEnv APPLICATION_ENV development
|
|
|
+
|
|
|
+RewriteEngine On
|
|
|
+RewriteCond %{REQUEST_FILENAME} -s [OR]
|
|
|
+RewriteCond %{REQUEST_FILENAME} -l [OR]
|
|
|
+RewriteCond %{REQUEST_FILENAME} -d
|
|
|
+RewriteRule ^.*$ - [NC,L]
|
|
|
+RewriteRule ^.*$ index.php [NC,L]
|
|
|
+]]></programlisting>
|
|
|
+
|
|
|
+ <note>
|
|
|
+ <title>mod_rewriteについて学ぶ</title>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ 上記の書き換えルールでは、バーチャル・ホスト・ドキュメント・ルートの配下の
|
|
|
+ どのファイルでもアクセスが許可されます。
|
|
|
+ このように公開されたくないファイルがあるならば、より限定的なルールにしたいかもしれません。
|
|
|
+ <ulink
|
|
|
+ url="http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html">mod_rewriteについてより学ぶ</ulink>
|
|
|
+ ためにはApache ウェブサイトを訪れてください。
|
|
|
+ </para>
|
|
|
+ </note>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ ここまでで、
|
|
|
+ <classname>Zend_Application</classname>をすっかり利用し始められるようになっています。
|
|
|
+ </para>
|
|
|
+ </sect2>
|
|
|
+
|
|
|
+ <sect2 id="zend.application.quick-start.resources">
|
|
|
+ <title>リソースの追加と作成</title>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ 上記の手引きに従うと、ブートストラップ・クラスはフロントコントローラを利用します。
|
|
|
+ そして、それが動くとき、フロントコントローラをディスパッチします。
|
|
|
+ しかし、おそらく、これより少し多くの構成を必要とするでしょう。
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ この節では、アプリケーションにリソースを2つ追加することに目を向けましょう。
|
|
|
+ 最初に、レイアウトを準備して、ビュー・オブジェクトをカスタマイズします。
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ <classname>Zend_Application</classname>で提供される標準的なリソースのうちの1つは、
|
|
|
+ 「レイアウト」リソースです。
|
|
|
+ このリソースでは、<classname>Zend_Layout</classname>インスタンスを構成するために使う構成値を
|
|
|
+ あなたが定義することをあてにしています。
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ これを使うためにすべきことは、構成ファイルを更新することです。
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <programlisting language="dosini"><![CDATA[
|
|
|
+[production]
|
|
|
+phpSettings.display_startup_errors = 0
|
|
|
+phpSettings.display_errors = 0
|
|
|
+bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
|
|
|
+bootstrap.class = "Bootstrap"
|
|
|
+resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
|
|
|
+; ADD THE FOLLOWING LINES
|
|
|
+resources.layout.layout = "layout"
|
|
|
+resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts"
|
|
|
+
|
|
|
+[staging : production]
|
|
|
+
|
|
|
+[testing : production]
|
|
|
+phpSettings.display_startup_errors = 1
|
|
|
+phpSettings.display_errors = 1
|
|
|
+
|
|
|
+[development : production]
|
|
|
+phpSettings.display_startup_errors = 1
|
|
|
+phpSettings.display_errors = 1
|
|
|
+]]></programlisting>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ もしまだ無ければ、
|
|
|
+ <filename>application/layouts/scripts/</filename>ディレクトリ、
|
|
|
+ 及びそのディレクトリ内に<filename>layout.phtml</filename>ファイルを作成してください。
|
|
|
+ 以下の通りで、レイアウトを良く始められます。
|
|
|
+ (そして、それは次に含まれるビュー・リソースと結びつきます):
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <programlisting language="php"><![CDATA[
|
|
|
+<?php echo $this->doctype() ?>
|
|
|
+<html>
|
|
|
+<head>
|
|
|
+ <?php echo $this->headTitle() ?>
|
|
|
+ <?php echo $this->headLink() ?>
|
|
|
+ <?php echo $this->headStyle() ?>
|
|
|
+ <?php echo $this->headScript() ?>
|
|
|
+</head>
|
|
|
+<body>
|
|
|
+ <?php echo $this->layout()->content ?>
|
|
|
+</body>
|
|
|
+</html>
|
|
|
+]]></programlisting>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ ここまでで、レイアウトを役立てられるようになっています。
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ 次に、カスタム・ビューリソースを追加します。
|
|
|
+ ビューを初期化する際に、
|
|
|
+ <acronym>HTML</acronym> DocType及び
|
|
|
+ <acronym>HTML</acronym>の head で使用するタイトルのデフォルト値を設定を希望します。
|
|
|
+ これは、メソッドを追加する<classname>Bootstrap</classname>クラスを編集することにより成就できます:
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <programlisting language="php"><![CDATA[
|
|
|
+class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
|
|
|
+{
|
|
|
+ protected function _initView()
|
|
|
+ {
|
|
|
+ // ビューを初期化します
|
|
|
+ $view = new Zend_View();
|
|
|
+ $view->doctype('XHTML1_STRICT');
|
|
|
+ $view->headTitle('My First Zend Framework Application');
|
|
|
+
|
|
|
+ // それを ViewRenderer に追加します
|
|
|
+ $viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper(
|
|
|
+ 'ViewRenderer'
|
|
|
+ );
|
|
|
+ $viewRenderer->setView($view);
|
|
|
+
|
|
|
+ // ブートストラップで保存できるように返します
|
|
|
+ return $view;
|
|
|
+ }
|
|
|
+}
|
|
|
+]]></programlisting>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ このメソッドはアプリケーションを起動する際に自動的に実行されて、
|
|
|
+ アプリケーションの必要性に従ってビューが初期化されることを確実にします。
|
|
|
+ </para>
|
|
|
+ </sect2>
|
|
|
+
|
|
|
+ <sect2 id="zend.application.quick-start.next-steps">
|
|
|
+ <title>Zend_Applicationを使った次のステップ</title>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ 上記は、<classname>Zend_Application</classname>で始めるようにさせるべきです。
|
|
|
+ そして、アプリケーション・ブートストラップを作成しだすべきです。
|
|
|
+ ここから、リソース・メソッドや、再利用性を最大にするために、リソース・プラグイン・クラスを作成し始めるべきです。
|
|
|
+ より学ぶために、引き続きご覧下さい!
|
|
|
+ </para>
|
|
|
+ </sect2>
|
|
|
+</sect1>
|