Zend framework Zend访问所有控制器中的用户数据

Zend framework Zend访问所有控制器中的用户数据,zend-framework,session,action,helper,Zend Framework,Session,Action,Helper,找了又找,找了又找,但似乎什么都没找到。我不会访问任何索引控制器中的用户数据来保存重复代码。我创建了一个动作助手,它调用会话并返回用户数据。下面是我如何实现这一切的。调用助手可以工作,但我无法在任何控制器中获取数据 Application.ini 自动加载命名空间[]=“ZC” Bootstrap.php protected function _initActionHelpers() { Zend_controller_Action_HelperBroker::addHelper(new ZC_

找了又找,找了又找,但似乎什么都没找到。我不会访问任何索引控制器中的用户数据来保存重复代码。我创建了一个动作助手,它调用会话并返回用户数据。下面是我如何实现这一切的。调用助手可以工作,但我无法在任何控制器中获取数据

Application.ini

自动加载命名空间[]=“ZC”

Bootstrap.php

protected function _initActionHelpers()
{
Zend_controller_Action_HelperBroker::addHelper(new ZC_Action_Helpers_User());   
}
User.php

<?php

    Class ZC_Action_Helpers_User extends Zend_Controller_Action_Helper_Abstract
    {       
    public function direct()
        {
            $storage = new Zend_Auth_Storage_Session();
            $data = $storage->read();
            $this->_user = $data;        
        }    
    }

尝试在引导路径中声明帮助程序

Zend_Controller_Action_HelperBroker::addPath(
        APPLICATION_PATH .'/controllers/helpers');

接下来用谷歌来回答这个简单的问题

首先,插件函数必须返回用户信息,而不是将其设置为类变量:

然后,您可以在任何需要的控制器中使用该插件:

$user  = $this->_helper->User->Direct()

您可能需要重命名其中一些函数和类。

Hi derhaa,助手路径已添加到应用程序中。iniautoloaderNamespaces[]=“ZC”这将检测助手的路径。Hi我在IndexContorToller中执行了上述操作,但在打印时($user)它什么也不做数据似乎没有输出?抱歉Aporat返回了$data!!!!再次感谢,所以当我做$this->_user=$data时,它设置为类变量,这意味着什么?
Class ZC_Action_Helpers_User extends Zend_Controller_Action_Helper_Abstract
{       
public function direct()
    {
        $storage = new Zend_Auth_Storage_Session();
        $data = $storage->read();
        return $data;        
    }    
}
$user  = $this->_helper->User->Direct()