2011-08-04 7 views
0

私は基本的なzendフレームワークプロジェクトを作成し、いくつかの追加モジュールをそこに追加しました。 それぞれのモジュールで、別々の設定ファイルを作成することにしました。私はネット上でいくつかのリソースを踏襲し、それが示唆するように、私はそのエラーを与える、問題設定モジュール固有の設定ファイル

class Custom_Bootstrap extends Zend_Application_Module_Bootstrap { 

    protected function _bootstrap() 
    { 
     $_conf = new Zend_Config_Ini(APPLICATION_PATH . "/modules/" . $this->getModuleName() . "/configs/application.ini", APPLICATION_ENV); 
     $this->_options = array_merge($this->_options, $_conf->toArray()); 
     parent::_bootstrap(); 
    } 
} 

そのも働いていないそのブートストラップクラス(アプリケーションではなく、ブートストラップクラス)に次のコードを配置しました。

Zend_Application_Bootstrap_BootstrapAbstractのソースコードを見ると、 _bootstrapの宣言は次のようになります
Strict Standards: Declaration of Custom_Bootstrap::_bootstrap() should be compatible with that of Zend_Application_Bootstrap_BootstrapAbstract::_bootstrap() in xxx\application\modules\custom\Bootstrap.php on line 2 

答えて

0

protected function _bootstrap($resource = null) 
    { 
     ... 
    } 

だから、あなたはこのように見えるためにあなたのオーバーライドを変更する必要があります。

protected function _bootstrap($resource = null) 
    { 
     $_conf = new Zend_Config_Ini(APPLICATION_PATH . "/modules/" . $this->getModuleName() . "/configs/application.ini", APPLICATION_ENV); 
     $this->_options = array_merge($this->_options, $_conf->toArray()); 
     parent::_bootstrap($resource); 
    } 
+0

いいえ、同じエラー – mrN

+0

これで、あなたのサブクラスのメソッドは 'protected function _bootstrap($ resource = null)'として定義されましたが、それでもエラーは出ますか? ZFのどのバージョンを使用していますか? 'Zend_Application_Module_Bootstrap'に' _bootstrap'がどのように宣言されているかを見ることができますか? – ChrisA

+0

最新の1.11.9 – mrN

2

ブートストラップ方法をオーバーライドしないで、モジュールをリソースに設定してください:

class Custom_Bootstrap extends Zend_Application_Module_Bootstrap 
{ 
    protected function _initConfig() 
    { 
     $config = new Zend_Config_Ini(APPLICATION_PATH . "/modules/" . $this->getModuleName() . "/configs/application.ini", APPLICATION_ENV); 
     $this->_options = array_merge($this->_options, $config->toArray()); 

     return $this->_options; 
    } 
} 

これは、モジュールがブートストラップされると自動的に実行されます。

+0

を使用していますが、新しい設定を新しいものとマージする必要があります – mrN

+0

同じ方法で引き続き行うことができます - あなたのコード例にあなたの配列マージを追加しました。 –

+0

あなたは$ this - > _optionsでマージして$ configを返しています...本当に正しいですか...私はまず試してみてください – mrN

関連する問題