Zend_Application クイックスタート
Zend_Applicationで始める方法は2つあります、
そして、それらはプロジェクトを始める方法によって決まります。
いずれにせよ、どの場合も、Bootstrapクラスと関連する
構成ファイルを作成することから始めます。
プロジェクトを作成するためにZend_Toolを使う予定なら、
引き続き、下記をご覧下さい。
Zend_Applicationを既存のプロジェクトに追加するなら、
読み飛ばして先に進みたいことでしょう。
アプリケーションに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、JSON、YAMLや
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]
Note: 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ファイルを作成してください。
以下の通りで、レイアウトを良く始められます。
(そして、それは次に含まれるビュー・リソースと結びつきます):
<?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>
ここまでで、レイアウトを役立てられるようになっています。
次に、カスタム・ビューリソースを追加します。
ビューを初期化する際に、
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で始めるようにさせるべきです。
そして、アプリケーション・ブートストラップを作成しだすべきです。
ここから、リソース・メソッドや、再利用性を最大にするために、リソース・プラグイン・クラスを作成し始めるべきです。
より学ぶために、引き続きご覧下さい!