Programmer's Reference Guide
| コア機能 |
利用できるリソースプラグイン
ここではZend_Applicationにおいて既定で利用可能なリソースプラグインの すべてについて、APIのようにドキュメントをご覧いただけます。
Zend_Application_Resource_Db
Zend_Application_Resource_Dbは、 それに渡されるオプションに基づいてZend_Dbアダプタを初期化します。 デフォルトで、Zend_Db_Table用のデフォルト・アダプタとして、 アダプタを設定します。
以下の構成キーが認識されます:
adapter: Zend_Dbアダプタ・タイプ
params: アダプタ・インスタンスを取得するときに使う構成パラメータの連想配列です。
isDefaultTableAdapter: アダプタをデフォルト・テーブル・アダプタとして確立するべきかどうか。
例1 DBアダプタ・リソース構成サンプル
下記は、DBリソースを初期化するために使えるINI構成サンプルです。
- [production]
- resources.db.adapter = "pdo_mysql"
- resources.db.params.host = "localhost"
- resources.db.params.username = "webuser"
- resources.db.params.password = "XXXXXXX"
- resources.db.params.dbname = "test"
- resources.db.isDefaultTableAdapter = true
注意: アダプタのインスタンスを取得する
このリソースでインスタンス化されるアダプタを デフォルト・テーブル・アダプタにしないことを選ぶなら、 あなたはどうやってアダプタ・インスタンスを取得しますか?
どんなリソース・プラグインでも、 ブートストラップからDBリソース・プラグインを取ってくることができます:
一旦リソースオブジェクトを所有するなら、 getDbAdapter()メソッドを用いてDBアダプタを取ってくることができます:
$resource = $bootstrap->getPluginResource('db');
$db = $resource->getDbAdapter();
Zend_Application_Resource_Frontcontroller
おそらく、あなたがZend_Applicationでロードする 最も一般的なリソースはフロントコントローラ・リソースです。 そして、それはZend_Controller_Frontを構成する能力を提供します。 このリソースは、 任意のフロントコントローラ・パラメータを設定したり、初期化するプラグインを指定したり、 そのほかにも能力を提供します。
一旦初期化されると、 リソースはブートストラップの$frontControllerプロパティを Zend_Controller_Frontインスタンスに割り当てます。
利用できる構成キーは以下を含みます。大文字と小文字の区別をしません:
controllerDirectory: コントローラ・ディレクトリを単独で指定している文字列値か、 またはモジュールからコントローラ・ディレクトリへの連想配列。
moduleControllerDirectoryName: コントローラを含むモジュールの配下でサブディレクトリを示す文字列値
moduleDirectory: モジュールが見つかるかもしれないディレクトリ
defaultControllerName: デフォルト・コントローラの基底名。(通常は "index")
defaultAction: デフォルト・アクションの基底名。(通常は "index")
defaultModule: デフォルト・モジュールの基底名。(通常は "default")
baseUrl: アプリケーションに対して明示された基底URL (通常は自動検出)
plugins: フロントコントローラのプラグイン・クラス名配列 このリソースは、各々のクラスを(コンストラクタ引数なしで)インスタンス化して、 それからフロントコントローラでインスタンスを登録します。
params: フロントコントローラに登録する連想配列
認識されていないキーが与えられると、 setParam()に渡すことで、 フロントコントローラ・パラメータとして登録されます。
例2 フロントコントローラ・リソース構成サンプル
下記は、フロントコントローラ・リソースを設定する方法を示すINIスニペット・サンプルです。
- [production]
- resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
- resources.frontController.moduleControllerDirectoryName = "actions"
- resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
- resources.frontController.defaultControllerName = "site"
- resources.frontController.defaultAction = "home"
- resources.frontController.defaultModule = "static"
- resources.frontController.baseUrl = "/subdir"
- resources.frontController.plugins.foo = "My_Plugin_Foo"
- resources.frontController.plugins.bar = "My_Plugin_Bar"
- resources.frontController.env = APPLICATION_ENV
例3 ブートストラップでフロントコントローラを取得
一旦フロントコントローラ・リソースが初期化されたら、 ブートストラップの$frontControllerプロパティを通じて フロントコントローラ・インスタンスを取ってくることができます。
- $bootstrap->bootstrap('frontController');
- $front = $bootstrap->frontController;
Zend_Application_Resource_Modules
Zend_Application_Resource_Modulesは、 アプリケーションモジュールを初期化するために使われます。 モジュールのルートにBootstrap.phpファイルがあるなら、 Module_Bootstrapという名前のクラスを含みます、 ( "Module" のところがモジュール名です) そして、モジュールをブートするためにそのクラスを使用します。
Zend_Application_Module_Autoloaderのインスタンスは、 それを初期化するためにモジュール名とディレクトリを使用して、 モジュールのためにデフォルトで作成されます。
Modules リソースはデフォルトでは何も引数を受け取らないので、 設定で有効にするには空の配列として作成しなければなりません。 INI 形式で設定する場合は次のようになります。
- resources.modules[] =
XML 形式で設定する場合は次のようになります。
- <resources>
- <modules>
- <!-- Placeholder to ensure an array is created -->
- <placeholder />
- </modules>
- </resources>
標準の PHP 配列を使用する場合は、単純に空の配列を作成します。
注意: フロントコントローラ・リソース依存
モジュール・リソースは、フロントコントローラ・リソース に依存します。 もちろん、あつらえのフロントコントローラ・リソースクラスまたはクラス・イニシャライザ・メソッドによって そのリソース自身の代用を提供できます。 "Frontcontroller" で終るリソース・プラグイン・クラスや "_initFrontController" という名前のイニシャライザ・メソッドである限りは。 (大文字と小文字の区別をしません)
例4 モジュールの設定
構成ファイルのプレフィックスまたはサブセクションとして モジュール名を使用しているモジュール固有の構成を指定できます。
たとえば、アプリケーションに "news" モジュールがあると仮定します。 下記は、そのモジュールでリソースの構成を示すINIとXMLの例です。
- [production]
- news.resources.db.adapter = "pdo_mysql"
- news.resources.db.params.host = "localhost"
- news.resources.db.params.username = "webuser"
- news.resources.db.params.password = "XXXXXXX"
- news.resources.db.params.dbname = "news"
- <?xml version="1.0"?>
- <config>
- <production>
- <news>
- <resources>
- <db>
- <adapter>pdo_mysql</adapter>
- <params>
- <host>localhost</host>
- <username>webuser</username>
- <password>XXXXXXX</password>
- <dbname>news</dbname>
- </params>
- <isDefaultAdapter>true</isDefaultAdapter>
- </db>
- </resources>
- </news>
- </production>
- </config>
例5 特定のモジュール・ブートストラップを取得する
時には、特定のモジュールのためにブートストラップ・オブジェクトを取得する必要があるかもしれません おそらくは別々のブートストラップ・メソッドを実行するためや、 それを構成するためのオートローダを引き出すために。 これは、モジュール・リソースの getExecutedBootstraps()メソッドを使用して行なえます。
- $resource = $bootstrap->getPluginResource('modules');
- $moduleBootstraps = $resource->getExecutedBootstraps();
- $newsBootstrap = $moduleBootstraps['news'];
Zend_Application_Resource_Session
Zend_Application_Resource_Session によって、任意にセッションSaveHandlerを初期化するだけでなく、 Zend_Sessionを構成できます。
セッション保存ハンドラを配置するためには、 単にリソースのsaveHandlerオプション・キーを渡してください。 (大文字と小文字の区別をしません) このオプションの値は、以下のうちの1つでしょう:
String : インスタンス化されるべきZend_Session_SaveHandler_Interfaceを 実装するクラスを示す文字列
Array : インスタンス化されるべきZend_Session_SaveHandler_Interfaceを実装しているクラスと そのコンストラクタに与えるオプションの配列を示す、 "class" 及び、任意で "options"キーを持つ配列
Zend_Session_SaveHandler_Interface: このインターフェースを実装するオブジェクト
渡されたオプション・キーはいずれも、 Zend_Sessionを構成するために、 Zend_Session::setOptions()に渡されます。
例7 セッション・リソース構成サンプル
下記は、セッション・リソースを設定する方法を示すINIスニペット・サンプルです。 Zend_Session_SaveHandler_DbTableインスタンスを構成するだけではなく、 Zend_Sessionオプションをいくつか設定します。
- resources.session.save_path = APPLICATION_PATH "/../data/session"
- resources.session.use_only_cookies = true
- resources.session.remember_me_seconds = 864000
- resources.session.saveHandler.class = "Zend_Session_SaveHandler_DbTable"
- resources.session.saveHandler.options.name = "session"
- resources.session.saveHandler.options.primary.session_id = "session_id"
- resources.session.saveHandler.options.primary.save_path = "save_path"
- resources.session.saveHandler.options.primary.name = "name"
- resources.session.saveHandler.options.primaryAssignment.sessionId = "sessionId"
- resources.session.saveHandler.options.primaryAssignment.sessionSavePath = "sessionSavePath"
- resources.session.saveHandler.options.primaryAssignment.sessionName = "sessionName"
- resources.session.saveHandler.options.modifiedColumn = "modified"
- resources.session.saveHandler.options.dataColumn = "session_data"
- resources.session.saveHandler.options.lifetimeColumn = "lifetime"
注意: 最初にデータベースを起動してください!
もしZend_Session_SaveHandler_DbTableセッション保存ハンドラを構成しているなら、 それが機能するためのデータベース接続を最初に構成しなければなりません。 いずれでも、Dbリソースを用いてこれを実行してください。 "resources.db" キーが "resources.session" キーよりも優先されることを確認してください。 あるいは、データベースを初期化するあなた自身のリソースを書くことによって。 そして、特にデフォルトZend_Db_Tableアダプタを設定します。
Zend_Application_Resource_View
Zend_Application_Resource_ViewはZend_Viewの インスタンスを設定するために使用できます。設定オプションは Zend_Viewオプションに 従います。
一旦ビューのインスタンスを設定したら、 Zend_Controller_Action_Helper_ViewRendererのインスタンスを 作成して、Zend_Controller_Action_HelperBroker (後ほどそこから取得できるでしょう)でViewRendererを登録します。
例8 サンプルビューリソースの設定
下記はビューリソースを設定する方法を示す INI スニペットサンプルです。
- resources.view.encoding = "UTF-8"
- resources.view.basePath = APPLICATION_PATH "/views/scripts"
| コア機能 |
