Zend Registry无法正常工作

时间:2012-05-16 05:58:29

标签: php zend-framework

我的bootstrap中有以下代码

protected function _userSession(){
    $session=new Zend_Session_Namespace("userIdentity");
    $session->greet="Hello!!!!!";
    Zend_Registry::set("session", $session);        
}

在控制器中我写道:

public function index() {
    $session = Zend_Registry::get("session");
    echo $session->greet;        
}

但它会显示错误消息,例如:没有为关键'会话'注册条目。这段代码有什么问题。任何解决方案。

1 个答案:

答案 0 :(得分:3)

我认为你只需要将用户会话的bootstrap方法更改为_initUserSession()

根据您的设置方式,引导程序会自动调用以_init

开头的所有方法

见这里:http://framework.zend.com/manual/en/zend.application.theory-of-operation.html#zend.application.theory-of-operation.bootstrap.resource-methods

如果您使用zend使用的默认index.php,那么您的引导程序将自动调用以_init

开头的所有方法

所以,如果你有以下内容:

$application->bootstrap()->run();

但如果你做这样的事情:

$application->bootstrap(array(
    'FrontController',
    'Layout',
    'View',
    'Db'))->run();

上面只会调用数组中列出的init方法。