| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- Reviewed: no -->
- <!-- EN-Revision: 24249 -->
- <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>JSON</acronym>、<acronym>YAML</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>
|