Documentation

Zend_Application クイックスタート - Zend_Application

Zend_Application クイックスタート

Zend_Applicationで始める方法は2つあります、 そして、それらはプロジェクトを始める方法によって決まります。 いずれにせよ、どの場合も、Bootstrapクラスと関連する 構成ファイルを作成することから始めます。

プロジェクトを作成するためにZend_Toolを使う予定なら、 引き続き、下記をご覧下さい。 Zend_Applicationを既存のプロジェクトに追加するなら、 読み飛ばして先に進みたいことでしょう。

Zend_Toolの利用

Zend_Applicationを使い始めるために最も早い方法は、 プロジェクトを生成するためにZend_Toolを使うことです。 これにより、Bootstrapクラスやファイルも生成されます。

プロジェクトを作成するために、(*nix システムで)zfコマンドを実行してください:

  1. % zf create project newproject

またはWindowsのzf.batコマンド:

  1. C:> zf.bat create project newproject

共に、下記のようなプロジェクト構造を作成します:

  1. newproject
  2. |-- application
  3. |   |-- Bootstrap.php
  4. |   |-- configs
  5. |   |   `-- application.ini
  6. |   |-- controllers
  7. |   |   |-- ErrorController.php
  8. |   |   `-- IndexController.php
  9. |   |-- models
  10. |   `-- views
  11. |       |-- helpers
  12. |       `-- scripts
  13. |           |-- error
  14. |           |   `-- error.phtml
  15. |           `-- index
  16. |               `-- index.phtml
  17. |-- library
  18. |-- public
  19. |   `-- index.php
  20. `-- tests
  21.     |-- application
  22.     |   `-- bootstrap.php
  23.     |-- library
  24.     |   `-- bootstrap.php
  25.     `-- phpunit.xml

上記の図の中で、ブートストラップはnewproject/application/Bootstrap.phpにあり、 最初は以下のように見えます:

  1. class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
  2. {
  3. }

構成ファイル、newproject/application/configs/application.iniにも気付くでしょう。 それは下記のような内容です:

  1. [production]
  2. phpSettings.display_startup_errors = 0
  3. phpSettings.display_errors = 0
  4. includePaths.library = APPLICATION_PATH "/../library"
  5. bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
  6. bootstrap.class = "Bootstrap"
  7. resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
  8.  
  9. [staging : production]
  10.  
  11. [testing : production]
  12. phpSettings.display_startup_errors = 1
  13. phpSettings.display_errors = 1
  14.  
  15. [development : production]
  16. phpSettings.display_startup_errors = 1
  17. phpSettings.display_errors = 1

この構成ファイルの設定は全て、 Zend_Application及びブートストラップで利用するためのものです。

他に興味を惹くファイルは newproject/public/index.phpで、 それはZend_Applicationを呼び出してディスパッチします。

  1. // アプリケーション・ディレクトリへのパスを定義します
  2. defined('APPLICATION_PATH')
  3.     || define('APPLICATION_PATH',
  4.               realpath(dirname(__FILE__) . '/../application'));
  5.  
  6. // アプリケーション環境を定義します
  7. defined('APPLICATION_ENV')
  8.     || define('APPLICATION_ENV',
  9.               (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV')
  10.                                          : 'production'));
  11.  
  12. /** Zend_Application */
  13. require_once 'Zend/Application.php';
  14.  
  15. // アプリケーション及びブートストラップを作成して、実行します
  16. $application = new Zend_Application(
  17.     APPLICATION_ENV,
  18.     APPLICATION_PATH . '/configs/application.ini'
  19. );
  20. $application->bootstrap()
  21.             ->run();

クイックスタートを続けるには、 リソース節まで読み飛ばしてください。

アプリケーションにZend_Applicationを追加する

Zend_Applicationの基本は本当に単純です:

  • Bootstrapクラスを持つ application/Bootstrap.phpファイルを作成します。

  • Zend_Applicationに必要な基本的な設定を持つ構成ファイル、 application/configs/application.iniを作成します。

  • Zend_Applicationを利用するために、 public/index.phpを変更します。

初めに、Bootstrapクラスを作成します。 application/Bootstrap.phpファイルを下記の内容で作成します。

  1. class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
  2. {
  3. }

次に、構成を作成します。 このチュートリアルではINI形式の構成を使います; もちろん、XMLJSONYAMLPHP構成ファイルも同様に利用できます。 application/configs/application.iniファイルを作成して、 下記の内容にしてください:

  1. [production]
  2. phpSettings.display_startup_errors = 0
  3. phpSettings.display_errors = 0
  4. includePaths.library = APPLICATION_PATH "/../library"
  5. bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
  6. bootstrap.class = "Bootstrap"
  7. resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
  8.  
  9. [staging : production]
  10.  
  11. [testing : production]
  12. phpSettings.display_startup_errors = 1
  13. phpSettings.display_errors = 1
  14.  
  15. [development : production]
  16. phpSettings.display_startup_errors = 1
  17. phpSettings.display_errors = 1

次に入り口となるスクリプト、public/index.phpを変更しましょう。 もしファイルが存在しなければ、作成してください; さもなければ、下記の内容でファイルを置き換えてください:

  1. // アプリケーション・ディレクトリへのパスを定義します
  2. defined('APPLICATION_PATH')
  3.     || define('APPLICATION_PATH',
  4.               realpath(dirname(__FILE__) . '/../application'));
  5.  
  6. // アプリケーション環境を定義します
  7. defined('APPLICATION_ENV')
  8.     || define('APPLICATION_ENV',
  9.               (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV')
  10.                                          : 'production'));
  11.  
  12. // 一般的に、library/ ディレクトリーをinclude_pathに追加したいでしょう
  13. // 特にそれがインストールしたZFを含むならば
  14. set_include_path(implode(PATH_SEPARATOR, array(
  15.     dirname(dirname(__FILE__)) . '/library',
  16. )));
  17.  
  18. /** Zend_Application */
  19. require_once 'Zend/Application.php';
  20.  
  21. // アプリケーション及びブートストラップを作成して、実行します
  22. $application = new Zend_Application(
  23.     APPLICATION_ENV,
  24.     APPLICATION_PATH . '/configs/application.ini'
  25. );
  26. $application->bootstrap()
  27.             ->run();

アプリケーション環境定数が環境変数 "APPLICATION_ENV" を探すことに気づくかもしれません。 我々は、これをウェブサーバ環境で設定することを勧めます。 Apacheでは、vhost定義、または、.htaccessファイルのいずれかで設定できます。 我々は、public/.htaccessファイルとして以下の内容を推奨します:

  1. SetEnv APPLICATION_ENV development
  2.  
  3. RewriteEngine On
  4. RewriteCond %{REQUEST_FILENAME} -s [OR]
  5. RewriteCond %{REQUEST_FILENAME} -l [OR]
  6. RewriteCond %{REQUEST_FILENAME} -d
  7. RewriteRule ^.*$ - [NC,L]
  8. RewriteRule ^.*$ index.php [NC,L]

Note: mod_rewriteについて学ぶ
上記の書き換えルールでは、バーチャル・ホスト・ドキュメント・ルートの配下の どのファイルでもアクセスが許可されます。 このように公開されたくないファイルがあるならば、より限定的なルールにしたいかもしれません。 » mod_rewriteについてより学ぶ ためにはApache ウェブサイトを訪れてください。

ここまでで、 Zend_Applicationをすっかり利用し始められるようになっています。

リソースの追加と作成

上記の手引きに従うと、ブートストラップ・クラスはフロントコントローラを利用します。 そして、それが動くとき、フロントコントローラをディスパッチします。 しかし、おそらく、これより少し多くの構成を必要とするでしょう。

この節では、アプリケーションにリソースを2つ追加することに目を向けましょう。 最初に、レイアウトを準備して、ビュー・オブジェクトをカスタマイズします。

Zend_Applicationで提供される標準的なリソースのうちの1つは、 「レイアウト」リソースです。 このリソースでは、Zend_Layoutインスタンスを構成するために使う構成値を あなたが定義することをあてにしています。

これを使うためにすべきことは、構成ファイルを更新することです。

  1. [production]
  2. phpSettings.display_startup_errors = 0
  3. phpSettings.display_errors = 0
  4. bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
  5. bootstrap.class = "Bootstrap"
  6. resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
  7. ; ADD THE FOLLOWING LINES
  8. resources.layout.layout = "layout"
  9. resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts"
  10.  
  11. [staging : production]
  12.  
  13. [testing : production]
  14. phpSettings.display_startup_errors = 1
  15. phpSettings.display_errors = 1
  16.  
  17. [development : production]
  18. phpSettings.display_startup_errors = 1
  19. phpSettings.display_errors = 1

もしまだ無ければ、 application/layouts/scripts/ディレクトリ、 及びそのディレクトリ内にlayout.phtmlファイルを作成してください。 以下の通りで、レイアウトを良く始められます。 (そして、それは次に含まれるビュー・リソースと結びつきます):

  1. <?php echo $this->doctype() ?>
  2. <html>
  3. <head>
  4.     <?php echo $this->headTitle() ?>
  5.     <?php echo $this->headLink() ?>
  6.     <?php echo $this->headStyle() ?>
  7.     <?php echo $this->headScript() ?>
  8. </head>
  9. <body>
  10.     <?php echo $this->layout()->content ?>
  11. </body>
  12. </html>

ここまでで、レイアウトを役立てられるようになっています。

次に、カスタム・ビューリソースを追加します。 ビューを初期化する際に、 HTML DocType及び HTMLの head で使用するタイトルのデフォルト値を設定を希望します。 これは、メソッドを追加するBootstrapクラスを編集することにより成就できます:

  1. class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
  2. {
  3.     protected function _initView()
  4.     {
  5.         // ビューを初期化します
  6.         $view = new Zend_View();
  7.         $view->doctype('XHTML1_STRICT');
  8.         $view->headTitle('My First Zend Framework Application');
  9.  
  10.         // それを ViewRenderer に追加します
  11.         $viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper(
  12.             'ViewRenderer'
  13.         );
  14.         $viewRenderer->setView($view);
  15.  
  16.         // ブートストラップで保存できるように返します
  17.         return $view;
  18.     }
  19. }

このメソッドはアプリケーションを起動する際に自動的に実行されて、 アプリケーションの必要性に従ってビューが初期化されることを確実にします。

Zend_Applicationを使った次のステップ

上記は、Zend_Applicationで始めるようにさせるべきです。 そして、アプリケーション・ブートストラップを作成しだすべきです。 ここから、リソース・メソッドや、再利用性を最大にするために、リソース・プラグイン・クラスを作成し始めるべきです。 より学ぶために、引き続きご覧下さい!

Copyright

© 2006-2020 by Zend by Perforce. Made with by awesome contributors.

This website is built using zend-expressive and it runs on PHP 7.

Contacts