0

ここに私の完全なエラーがあります:

厳格な基準: 145 行目の /Users/panda/Dropbox/www/_playground/myApp/Zend/Application/Resource/Frontcontroller.php で静的プロパティ Bootstrap::$frontController に非静的としてアクセスする

致命的なエラー: /Users/panda/Dropbox/www/_playground/myApp/Zend/Registry.php:70 でメッセージ「Registry is already initialized」を含む例外「Zend_Exception」をキャッチできませんでした: 70 スタック トレース: #0 /Users/panda/Dropbox/www /_playground/myApp/application/Bootstrap.php(217): Zend_Registry::setInstance(Object(Zend_Registry)) #1 /Users/panda/Dropbox/www/_playground/myApp/application/Bootstrap.php(56): Bootstrap- >_initSetupRegistry() #2 /Users/panda/Dropbox/www/_playground/myApp/Zend/Application/Bootstrap/BootstrapAbstract.php(669): Bootstrap->_initPrepare() #3 /Users/panda/Dropbox/www/_playground /myApp/Zend/Application/Bootstrap/BootstrapAbstract.php(622): Zend_Application_Bootstrap_BootstrapAbstract->_executeResource('prepare') 4 /Users/panda/Dropbox/www/_playground/myApp/Zend/Application/Bootstrap/BootstrapAbstract.php(586): Zend_Application_Bootstrap_BootstrapAbstract->_bootstrap(NULL) #5 /Users/panda/Dropbox/www/_playground/myApp/ Zend/Application.php(355): Zend_Application_Bootstrap_BootstrapAbstract->bootstrap(NULL) #6 /Users/panda/Dropbox/www/_playground/myApp/Zend/Registry.php の 70 行目

これが私のブートストラップの関数です

/*
* Zend_Registry get's born here so it can be accesed
*/
protected function _initSetupRegistry()
{

    self::$registry = new Zend_Registry(array(), ArrayObject::ARRAY_AS_PROPS);
    Zend_Registry::setInstance(self::$registry);

}

さらにコードが必要な場合はお知らせください。問題を見つけるためのヒントが欲しい場合や、正確な問題を知っている人がいる場合はお知らせください。

ありがとうございました!

4

1 に答える 1

2

この方法で何を達成しようとしていますか?

レジストリのインスタンスだけが必要な場合は、Zend_Registry::getInstance(). あなたはそれを構築すべきではありません(なぜ彼らがシングルトンパターンを使用したが、__constructを非公開にしなかったのかはわかりません)。

Zend_Registry のインスタンスを本当に置き換えたい場合は、Zend_Registry::_unsetInstance()最初に呼び出します。

後で参照できるように静的な $registry 変数を設定したいだけの場合は、次を試してください。

self::$registry = Zend_Registry::getInstance(); 
self::$registry->set('configuration', 'myconfig');

Zend_Registry::getInstance()ただし、任意のスコープからアクセスできるため、これが必要かどうかはわかりません。したがって、上記は次と同じです。

Zend_Registry::getInstance()->set('configuration', 'myconfig');

どこにでも電話をかけることができます。

于 2013-01-16T18:48:12.297 に答える