RADツールによるPHPアプリケーション速効開発
- Zend_ToolとZend_Application -
Zend Frameworkによる実践的なPHPアプリケーション開発 23
ダウンロード サンプルファイル (8.4 KB)
アプリケーションの設定ファイル
application.iniはINI形式のファイルで、アプリケーションに関する設定が記述されています。標準では4つのセクションがあります(リスト5)。少し前にも述べましたが、Zend_Applicationに渡す引数によって、設定のどの部分を利用するかを指定することができます。
ここでは、最初にproductionセクションが宣言されていて、それを拡張したセクションがその後に3つ宣言されています。後の3つのセクションは[(セクション名) : (親セクション名)]という形で宣言されていますが、これは「親セクション」の内容を引き継ぎつつ設定の一部を上書きした、「セクション」を宣言している、という表記になっています。
[production] procuctionセクション開始 phpSettings.display_startup_errors = 0 PHPの設定: PHPの立ち上げ時のエラーは表示しない phpSettings.display_errors = 0 PHPの設定: エラーを画面に出力しない includePaths.library = APPLICATION_PATH "/../library" 自動クラスローディング用のパスの設定 bootstrap.path = APPLICATION_PATH "/Bootstrap.php" //……(1)ブートストラップクラスの指定 bootstrap.class = "Bootstrap" resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers" //……(2) [staging : production] ... [testing : production] ... [development : production] phpSettings.display_startup_errors = 1 PHPの設定: PHPの立ち上げ時のエラーを表示する(設定の上書き) phpSettings.display_errors = 1 PHPの設定: エラーを画面に出力する(設定の上書き)
このうち、(1)と(2)はどちらもブートストラップに関係する記述です。上でも述べたとおり、リソースを作成する段階がブートストラップです。このブートストラップでは、直接作成したいリソースについて記述する方法と、リソースプラグインを利用してリソースを作成する方法と2つあります。
(1)は、直接リソースを作成するための方法についての設定で、リソースを作成するクラス(ブートストラップクラス)が記述されたファイル名(ここでは「C:\codezine\application\Bootstrap.php」)を指定しています。
(2)は、リソースプラグインを利用するための設定です。リソースプラグインはリソースを自動的に作成してくれるプラグインです。(2)で利用しているリソースプラグインは、フロントコントローラを作成するためのもので、ここではアクションコントローラが格納されているディレクトリを「C:\codezine\application\controllers」に設定しています。
ブートストラップクラス
ブートストラップクラスが記述されているBootstrap.phpは自動的に生成されるファイルで、標準では空のクラスのBootstrapクラスだけが記述されています。ここでは「_initView」メソッドを追加して、描画を担当するZend_Viewをここで作成するように変更します(リスト6)。
<?php
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
}
▼
<?php
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
//次のメソッドを追加
protected function _initView()
{
// (1)ビューを作成し、設定する
$view = new Zend_View();
// (2)タイトルまわりの設定
$view->headTitle('Codezine', 'PREPEND'); //タイトルの先頭に文字列「Codezine」を追加する
$view->headTitle()->setSeparator(' -- '); //タイトルに含まれる要素を区切る文字列に「 -- 」を指定する
// (3)ビューレンダラーに渡す
$viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper(
'ViewRenderer'
);
$viewRenderer->setView($view);
// (4)作成したビューを返す
return $view;
}
}
ここで追加しているのは_initViewメソッドです。中では、
Zend_Viewクラスのインスタンスを作成(リスト6の(1))- タイトルなどの設定を実行(リスト6の(2))
- それが実際の描画を行うようにビューレンダラーに登録(リスト6の(3))
- 作成したZend_Viewのインスタンスを返す(リスト6の(4))
を実行しています。
この_initViewメソッドはリスト3の(2)でZend_Applicationクラスのbootstrapメソッドが実行されるタイミングで呼び出されます。
なお、ここでは_initViewというメソッドを追加しましたが、ブートストラップクラスでは_initから始まるメソッドはすべてリソースを生成するためのメソッドとして扱われます。そのため必要に応じて_initModelなどのメソッドを追加して、リソースの作成を行うことができます。
なお、今回のようにZend_Applicationのbootstrapメソッドを、引数なしで呼び出すとすべてのリソースプラグインや_init~メソッドが呼び出されます。特定のリソースだけを作成したい場合には、bootstrapメソッドに作成したいリソースの文字列(もし複数の場合にはそれらの配列)を引数として渡すことで、指定したリソースのみの作成を行うことができます。
- 修正履歴
-
- 2009/10/18 21:30 必要な環境の「PHP5.1.4以降」を「PHP5.2.4以降」に修正しました(Zend Framework 1.8以降に必要).
この記事は参考になりましたか?
- この記事の著者
-
山田 祥寛(ヤマダ ヨシヒロ)
静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
-
WINGSプロジェクト 風田 伸之(カゼタ ノブユキ)
<WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。 2026年時点での登録メンバは約50名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書、記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア
