前回「最初から用意しろよ」とか言いましたが、実はZend_Applicationで実現できます。
クイックスタートを利用して前回までのZend_Controllerを書き換えてみます。
クイックスタートは2種類ありますが、Zend_Toolを利用する方法は新規プロジェクト用なので後者を使用します。
まずBootstrapを作成。
application/Bootstrap.php
html/index.php
順番に見ていきましょう。
Bootstrap.phpは、毎回必ず呼ばれるクラスになります。
前回作ったBaseController.phpのようなものですが、予めシステムに組み込まれているぶんrequire_onceを書いたりextendsしたりしなくてすむようになります。
これ一体何処からどうやって呼ばれているのかさっぱりわからない。
application.iniは設定ファイルです。
書き方はZend_Configの記事を参照してください。
'production'、'staging'、'testing'、'development'の4環境を設置しています。
まあ大抵は'production''development'の二つしか使いませんが。
public/index.phpはインデックスです。
BaseControllerではrun()するだけでしたが、Zend_Applicationは幾つか事前準備が必要です。
定数APPLICATION_ENVはapplication.iniに対するどの環境かを設定しています。
定数APPLICATION_ENVの中身は環境変数APPLICATION_ENVから取得しており、その環境変数APPLICATION_ENVはhtml/.htaccessで'development'と指定しているので開発環境となります。
従って本番環境ではhtml/.htaccessの中身が'production'となります。
これでとりあえず準備ができたのでブラウザで実行。
Warning: require_once(APP_DIRcontrollers/BaseController.php) [function.require-once]: failed to open stream: No such file or directory in C:\hoge\fuga\application\controllers\IndexController.php on line 3
お?
クイックスタートを利用して前回までのZend_Controllerを書き換えてみます。
クイックスタートは2種類ありますが、Zend_Toolを利用する方法は新規プロジェクト用なので後者を使用します。
まずBootstrapを作成。
application/Bootstrap.php
<?php
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap{}
コンフィグファイルを作成。
[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インデックスを書き換え。
html/index.php
<?php
// アプリケーション・ディレクトリへのパスを定義します
defined('APPLICATION_PATH')
|| define('APPLICATION_PATH',
realpath(dirname(__FILE__) . '/../application'));
// アプリケーション環境
defined('APPLICATION_ENV')
|| define('APPLICATION_ENV',
(getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV')
: 'production'));
// 必要があればinclude_pathを追加
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();
html/.htaccessに一行追加。
SetEnv APPLICATION_ENV developmentほとんどコピペしただけです。
順番に見ていきましょう。
Bootstrap.phpは、毎回必ず呼ばれるクラスになります。
前回作ったBaseController.phpのようなものですが、予めシステムに組み込まれているぶんrequire_onceを書いたりextendsしたりしなくてすむようになります。
これ一体何処からどうやって呼ばれているのかさっぱりわからない。
application.iniは設定ファイルです。
書き方はZend_Configの記事を参照してください。
'production'、'staging'、'testing'、'development'の4環境を設置しています。
まあ大抵は'production''development'の二つしか使いませんが。
public/index.phpはインデックスです。
BaseControllerではrun()するだけでしたが、Zend_Applicationは幾つか事前準備が必要です。
定数APPLICATION_ENVはapplication.iniに対するどの環境かを設定しています。
定数APPLICATION_ENVの中身は環境変数APPLICATION_ENVから取得しており、その環境変数APPLICATION_ENVはhtml/.htaccessで'development'と指定しているので開発環境となります。
従って本番環境ではhtml/.htaccessの中身が'production'となります。
これでとりあえず準備ができたのでブラウザで実行。
Warning: require_once(APP_DIRcontrollers/BaseController.php) [function.require-once]: failed to open stream: No such file or directory in C:\hoge\fuga\application\controllers\IndexController.php on line 3
お?
PR
トラックバック
トラックバックURL: