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 中未捕获的异常“Zend_Exception”和消息“注册表已初始化”堆栈跟踪:#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 in /Users/panda/Dropbox/www/_playground/myApp/Zend/Registry.php on line 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 回答