ブートストラップ・クラスそのものは、一般的にかなりごく小さいものです; しばしば、それは基底ブートストラップ・クラスを拡張している中身がない単純なスタブです: 対応する構成ファイルを伴います: しかし、カスタマイズした初期化が必要ならば、2つの選択肢ががあります。 最初に、ブートストラップに個別のコードを指定するために _initで前に置かれるメソッドを書くことができます。 これらのメソッドはbootstrap()によって呼ばれて、 まるでそれらが public メソッドであるように呼ばれることもできます: bootstrap<resource>() それらは、任意のオプション配列を受け取るべきです。 リソース・メソッドが値を返すならば、それはブートストラップでコンテナに保存されます。 異なるリソースが相互に作用する必要があるとき、 (例えば、別のリソースにそれ自体を注入している1つのリソース) これは役に立つことがあります。 その場合、メソッドgetResource()は、 それらの値を取得するために使うことができます。 下記の例では、リクエスト・オブジェクトを初期化するためのリソース・メソッドを示します。 それは、トラッキング(フロントコントローラ・リソースに依存します)、 ブートストラップからのリソース取得、 ブートストラップに保存する値の返却することの依存性を利用します。 bootstrap('FrontController'); $front = $this->getResource('FrontController'); // リクエストオブジェクトの初期化 $request = new Zend_Controller_Request_Http(); $request->setBaseUrl('/foo'); // フロントコントローラに追加 $front->setRequest($request); // この値をブートストラップでコンテナの 'request' キーに保存します。 return $request; } } ]]> この例で、bootstrap()を呼び出すことに注意してください; フロントコントローラがこのメソッドを呼ぶ前に初期化されることを確実にします。 その呼び出しは、クラスのリソースまたは別のメソッドいずれかの引き金となるかもしれません。 リソース・プラグインは、特定の初期化を実行するオブジェクトで、 それは指定されるかもしれません: Zend_Applicationオブジェクトが初期化されるとき ブートストラップオブジェクトの初期化中 メソッド呼び出しを介してそれらをブートストラップ・オブジェクトで明示的に使用可能にすることによって 呼出し元とオプションを注入でき、 init()メソッドをもつことを 簡単に明確にする Zend_Application_Resource_ResourceAbstractを リソース・プラグインでは実装します。 例えば、カスタマイズした "View" ブートストラップ・リソースは、 以下のように見えるかもしれません: getOptions()); Zend_Dojo::enableView($view); $view->doctype('XHTML1_STRICT'); $view->headTitle()->setSeparator(' - ')->append('My Site'); $view->headMeta()->appendHttpEquiv('Content-Type', 'text/html; charset=utf-8'); $view->dojo()->setDjConfigOption('parseOnLoad', true) ->setLocalPath('/js/dojo/dojo.js') ->registerModulePath('../spindle', 'spindle') ->addStylesheetModule('spindle.themes.spindle') ->requireModule('spindle.main') ->disable(); $viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper( 'ViewRenderer' ); $viewRenderer->setView($view); return $view; } } ]]> これを使うようにブートストラップに命じるために、 リソースプラグインのクラス名か、 またはプラグイン・ローダ・プレフィックス・パスと リソースプラグインの短い名前(例えば "view" )の組み合わせを 提供する必要があるでしょう: array( 'My_Bootstrap_Resource_View' => array(), // 完全クラス名; 'view' => array(), // または短い名前 'FrontController' => array( 'controllerDirectory' => APPLICATION_PATH . '/controllers', ), ), // 短い名前のためにプラグインパスを定義します: 'pluginPaths = array( 'My_Bootstrap_Resource' => 'My/Bootstrap/Resource', ) ) ); ]]> リソースは、親ブートストラップにアクセスすることによって、 他のリソースとイニシャライザを呼び出すことができます: getBootstrap()->bootstrap('view'); // ビューオブジェクトを取得: $view = $this->getBootstrap()->getResource('view'); // ... } } ]]> 通常の使用法では、アプリケーションをインスタンス化して、 起動して実行するでしょう: bootstrap() ->run(); ]]> カスタマイズしたスクリプトについては、 特定のリソースを単純に初期化する必要があるかもしれません: getBootstrap()->bootstrap('db'); $service = new Zend_XmlRpc_Server(); $service->setClass('Foo'); // データベースの利用 echo $service->handle(); ]]> 内部のメソッドまたはリソースを呼び出す bootstrap()メソッドを使用する代わりに、 オーバーローディングも使うかもしれません: getBootstrap()->bootstrapDb(); ]]>