- 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
Programmer's Reference Guide
| 導入 |
Zend_Application クイックスタート
Zend_Applicationで始める方法は2つあります、 そして、それらはプロジェクトを始める方法によって決まります。 いずれにせよ、どの場合も、Bootstrapクラスと関連する 構成ファイルを作成することから始めます。
プロジェクトを作成するためにZend_Toolを使う予定なら、 引き続き、下記をご覧下さい。 Zend_Applicationを既存のプロジェクトに追加するなら、 読み飛ばして先に進みたいことでしょう。
Zend_Toolの利用
Zend_Applicationを使い始めるために最も早い方法は、 プロジェクトを生成するためにZend_Toolを使うことです。 これにより、Bootstrapクラスやファイルも生成されます。
プロジェクトを作成するために、(*nix システムで)zfコマンドを実行してください:
- % zf create project newproject
またはWindowsのzf.batコマンド:
- C:> zf.bat create project newproject
共に、下記のようなプロジェクト構造を作成します:
上記の図の中で、ブートストラップはnewproject/application/Bootstrap.phpにあり、 最初は以下のように見えます:
- class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
- {
- }
構成ファイル、newproject/application/configs/application.iniにも気付くでしょう。 それは下記のような内容です:
- [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
この構成ファイルの設定は全て、 Zend_Application及びブートストラップで利用するためのものです。
他に興味を惹くファイルは newproject/public/index.phpで、 それはZend_Applicationを呼び出してディスパッチします。
- // アプリケーション・ディレクトリへのパスを定義します
- // アプリケーション環境を定義します
- : 'production'));
- /** Zend_Application */
- require_once 'Zend/Application.php';
- // アプリケーション及びブートストラップを作成して、実行します
- $application = new Zend_Application(
- APPLICATION_ENV,
- APPLICATION_PATH . '/configs/application.ini'
- );
- $application->bootstrap()
- ->run();
クイックスタートを続けるには、 リソース節まで読み飛ばしてください。
アプリケーションにZend_Applicationを追加する
Zend_Applicationの基本は本当に単純です:
Bootstrapクラスを持つ application/Bootstrap.phpファイルを作成します。
Zend_Applicationに必要な基本的な設定を持つ構成ファイル、 application/configs/application.iniを作成します。
Zend_Applicationを利用するために、 public/index.phpを変更します。
初めに、Bootstrapクラスを作成します。 application/Bootstrap.phpファイルを下記の内容で作成します。
- class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
- {
- }
次に、構成を作成します。 このチュートリアルではINI形式の構成を使います; もちろん、XMLやPHP構成ファイルも同様に利用できます。 application/configs/application.iniファイルを作成して、 下記の内容にしてください:
- [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
次に入り口となるスクリプト、public/index.phpを変更しましょう。 もしファイルが存在しなければ、作成してください; さもなければ、下記の内容でファイルを置き換えてください:
- // アプリケーション・ディレクトリへのパスを定義します
- // アプリケーション環境を定義します
- : 'production'));
- // 一般的に、library/ ディレクトリーをinclude_pathに追加したいでしょう
- // 特にそれがインストールしたZFを含むならば
- )));
- /** Zend_Application */
- require_once 'Zend/Application.php';
- // アプリケーション及びブートストラップを作成して、実行します
- $application = new Zend_Application(
- APPLICATION_ENV,
- APPLICATION_PATH . '/configs/application.ini'
- );
- $application->bootstrap()
- ->run();
アプリケーション環境定数が環境変数 "APPLICATION_ENV" を探すことに気づくかもしれません。 我々は、これをウェブサーバ環境で設定することを勧めます。 Apacheでは、vhost定義、または、.htaccessファイルのいずれかで設定できます。 我々は、public/.htaccessファイルとして以下の内容を推奨します:
- 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]
注意: mod_rewriteについて学ぶ
上記の書き換えルールでは、バーチャル・ホスト・ドキュメント・ルートの配下の どのファイルでもアクセスが許可されます。 このように公開されたくないファイルがあるならば、より限定的なルールにしたいかもしれません。 » mod_rewriteについてより学ぶ ためにはApache ウェブサイトを訪れてください。
ここまでで、 Zend_Applicationをすっかり利用し始められるようになっています。
リソースの追加と作成
上記の手引きに従うと、ブートストラップ・クラスはフロントコントローラを利用します。 そして、それが動くとき、フロントコントローラをディスパッチします。 しかし、おそらく、これより少し多くの構成を必要とするでしょう。
この節では、アプリケーションにリソースを2つ追加することに目を向けましょう。 最初に、レイアウトを準備して、ビュー・オブジェクトをカスタマイズします。
Zend_Applicationで提供される標準的なリソースのうちの1つは、 「レイアウト」リソースです。 このリソースでは、Zend_Layoutインスタンスを構成するために使う構成値を あなたが定義することをあてにしています。
これを使うためにすべきことは、構成ファイルを更新することです。
- [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
もしまだ無ければ、 application/layouts/scripts/ディレクトリ、 及びそのディレクトリ内にlayout.phtmlファイルを作成してください。 以下の通りで、レイアウトを良く始められます。 (そして、それは次に含まれるビュー・リソースと結びつきます):
ここまでで、レイアウトを役立てられるようになっています。
次に、カスタム・ビューリソースを追加します。 ビューを初期化する際に、 HTML DocType及び HTMLの head で使用するタイトルのデフォルト値を設定を希望します。 これは、メソッドを追加するBootstrapクラスを編集することにより成就できます:
- 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;
- }
- }
このメソッドはアプリケーションを起動する際に自動的に実行されて、 アプリケーションの必要性に従ってビューが初期化されることを確実にします。
Zend_Applicationを使った次のステップ
上記は、Zend_Applicationで始めるようにさせるべきです。 そして、アプリケーション・ブートストラップを作成しだすべきです。 ここから、リソース・メソッドや、再利用性を最大にするために、リソース・プラグイン・クラスを作成し始めるべきです。 より学ぶために、引き続きご覧下さい!
| 導入 |
