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構成サンプルです。

  1. [production]
  2. resources.db.adapter = "pdo_mysql"
  3. resources.db.params.host = "localhost"
  4. resources.db.params.username = "webuser"
  5. resources.db.params.password = "XXXXXXX"
  6. resources.db.params.dbname = "test"
  7. resources.db.isDefaultTableAdapter = true

注意: アダプタのインスタンスを取得する
このリソースでインスタンス化されるアダプタを デフォルト・テーブル・アダプタにしないことを選ぶなら、 あなたはどうやってアダプタ・インスタンスを取得しますか?
どんなリソース・プラグインでも、 ブートストラップからDBリソース・プラグインを取ってくることができます:

  1. $resource = $bootstrap->getPluginResource('db');
一旦リソースオブジェクトを所有するなら、 getDbAdapter()メソッドを用いてDBアダプタを取ってくることができます:
  1. $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スニペット・サンプルです。

  1. [production]
  2. resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
  3. resources.frontController.moduleControllerDirectoryName = "actions"
  4. resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
  5. resources.frontController.defaultControllerName = "site"
  6. resources.frontController.defaultAction = "home"
  7. resources.frontController.defaultModule = "static"
  8. resources.frontController.baseUrl = "/subdir"
  9. resources.frontController.plugins.foo = "My_Plugin_Foo"
  10. resources.frontController.plugins.bar = "My_Plugin_Bar"
  11. resources.frontController.env = APPLICATION_ENV

例3 ブートストラップでフロントコントローラを取得

一旦フロントコントローラ・リソースが初期化されたら、 ブートストラップの$frontControllerプロパティを通じて フロントコントローラ・インスタンスを取ってくることができます。

  1. $bootstrap->bootstrap('frontController');
  2. $front = $bootstrap->frontController;

Zend_Application_Resource_Modules

Zend_Application_Resource_Modulesは、 アプリケーションモジュールを初期化するために使われます。 モジュールのルートにBootstrap.phpファイルがあるなら、 Module_Bootstrapという名前のクラスを含みます、 ( "Module" のところがモジュール名です) そして、モジュールをブートするためにそのクラスを使用します。

Zend_Application_Module_Autoloaderのインスタンスは、 それを初期化するためにモジュール名とディレクトリを使用して、 モジュールのためにデフォルトで作成されます。

Modules リソースはデフォルトでは何も引数を受け取らないので、 設定で有効にするには空の配列として作成しなければなりません。 INI 形式で設定する場合は次のようになります。

  1. resources.modules[] =

XML 形式で設定する場合は次のようになります。

  1. <resources>
  2.     <modules>
  3.         <!-- Placeholder to ensure an array is created -->
  4.         <placeholder />
  5.     </modules>
  6. </resources>

標準の PHP 配列を使用する場合は、単純に空の配列を作成します。

  1. $options = array(
  2.     'resources' => array(
  3.         'modules' => array(),
  4.     ),
  5. );

注意: フロントコントローラ・リソース依存
モジュール・リソースは、フロントコントローラ・リソース に依存します。 もちろん、あつらえのフロントコントローラ・リソースクラスまたはクラス・イニシャライザ・メソッドによって そのリソース自身の代用を提供できます。 "Frontcontroller" で終るリソース・プラグイン・クラスや "_initFrontController" という名前のイニシャライザ・メソッドである限りは。 (大文字と小文字の区別をしません)

例4 モジュールの設定

構成ファイルのプレフィックスまたはサブセクションとして モジュール名を使用しているモジュール固有の構成を指定できます。

たとえば、アプリケーションに "news" モジュールがあると仮定します。 下記は、そのモジュールでリソースの構成を示すINIXMLの例です。

  1. [production]
  2. news.resources.db.adapter = "pdo_mysql"
  3. news.resources.db.params.host = "localhost"
  4. news.resources.db.params.username = "webuser"
  5. news.resources.db.params.password = "XXXXXXX"
  6. news.resources.db.params.dbname = "news"
  1. <?xml version="1.0"?>
  2. <config>
  3.     <production>
  4.         <news>
  5.             <resources>
  6.                 <db>
  7.                     <adapter>pdo_mysql</adapter>
  8.                     <params>
  9.                         <host>localhost</host>
  10.                         <username>webuser</username>
  11.                         <password>XXXXXXX</password>
  12.                         <dbname>news</dbname>
  13.                     </params>
  14.                     <isDefaultAdapter>true</isDefaultAdapter>
  15.                 </db>
  16.             </resources>
  17.         </news>
  18.     </production>
  19. </config>

例5 特定のモジュール・ブートストラップを取得する

時には、特定のモジュールのためにブートストラップ・オブジェクトを取得する必要があるかもしれません おそらくは別々のブートストラップ・メソッドを実行するためや、 それを構成するためのオートローダを引き出すために。 これは、モジュール・リソースの getExecutedBootstraps()メソッドを使用して行なえます。

  1. $resource = $bootstrap->getPluginResource('modules');
  2. $moduleBootstraps = $resource->getExecutedBootstraps();
  3. $newsBootstrap = $moduleBootstraps['news'];

Zend_Application_Resource_Navigation

Zend_Application_Resource_Navigationは、 Zend_Navigationインスタンスを構成するために使用できます。 構成オプションは、Zend_Navigation オプション毎にあります。

一旦ナビゲーション・インスタンスを構成すると、 それはデフォルトでインスタンスを Zend_View_Helper_Navigationに割り当てます、 そこから、後でそれを取得するかもしれません。

例6 ナビゲーション・リソース構成の例

下記は、ナビゲーション・リソースを設定する方法を示す、 INIスニペットの例です。

  1. resources.navigation.pages.page1.label = "Label of the first page"
  2. resources.navigation.pages.page1.route = "Route that belongs to the first page"
  3.  
  4. ; Page 2 is a subpage of page 1
  5. resources.navigation.pages.page1.pages.page2.type = "Zend_Navigation_Page_Uri"
  6. resources.navigation.pages.page1.pages.page2.label = "Label of the second page"
  7. resources.navigation.pages.page1.pages.page2.uri = "/url/to/page/2"

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オプションをいくつか設定します。

  1. resources.session.save_path = APPLICATION_PATH "/../data/session"
  2. resources.session.use_only_cookies = true
  3. resources.session.remember_me_seconds = 864000
  4. resources.session.saveHandler.class = "Zend_Session_SaveHandler_DbTable"
  5. resources.session.saveHandler.options.name = "session"
  6. resources.session.saveHandler.options.primary.session_id = "session_id"
  7. resources.session.saveHandler.options.primary.save_path = "save_path"
  8. resources.session.saveHandler.options.primary.name = "name"
  9. resources.session.saveHandler.options.primaryAssignment.sessionId = "sessionId"
  10. resources.session.saveHandler.options.primaryAssignment.sessionSavePath = "sessionSavePath"
  11. resources.session.saveHandler.options.primaryAssignment.sessionName = "sessionName"
  12. resources.session.saveHandler.options.modifiedColumn = "modified"
  13. resources.session.saveHandler.options.dataColumn = "session_data"
  14. 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_ViewZend_Viewの インスタンスを設定するために使用できます。設定オプションは Zend_Viewオプションに 従います。

一旦ビューのインスタンスを設定したら、 Zend_Controller_Action_Helper_ViewRendererのインスタンスを 作成して、Zend_Controller_Action_HelperBroker (後ほどそこから取得できるでしょう)でViewRendererを登録します。

例8 サンプルビューリソースの設定

下記はビューリソースを設定する方法を示す INI スニペットサンプルです。

  1. resources.view.encoding = "UTF-8"
  2. resources.view.basePath = APPLICATION_PATH "/views/scripts"

コア機能
blog comments powered by Disqus

Select a Version

Languages Available

Components

Search the Manual