当前位置:  开发笔记 > 编程语言 > 正文

在Zend Framework中处理会话处理的最佳方法

如何解决《在ZendFramework中处理会话处理的最佳方法》经验,为你挑选了1个好方法。

所以我在Zend框架中启动并希望实现一个站点范围的"用户"会话....我可以从应用程序中的所有模块/控制器轻松访问.

我想,我应该在库中创建一个新的命名空间并扩展控制器,如:

class MYCUSTOMLIB_Controller_Action extends Zend_Controller_Action
{
    protected $_userSession;

    function preDispatch(Zend_Controller_Request_Abstract $req)
    {
         $this->_userSession = new Zend_Session_Namespace('user');
    }
}

然后我的所有控制器/模块/等都延伸到那个?

或者我应该创建一个插件或什么?您将如何使此插件将用户会话传递给控制器​​?

或者我是否在引导程序中执行此操作?再次如何传递给控制器​​?

我也应该使用Zend_Session_Namespace或Zend_Http_Cookie,以及如何加密和xss清理cookie或自动完成?



1> Rob Allen..:

我也会在bootstrap中初始化:

//Bootstrap.php
protected function _initUserSession()
{
    return new Zend_Session_Namespace('user');
}

然后我会使用一个动作助手:

// library/App/Controller/Action/Helper/Session.php
class App_Controller_Action_Helper_Session extends Zend_Controller_Action_Helper_Abstract
{
    function direct()
    {
        return $this->getFrontController()->getParam('userSession');
    }
}

您可以在控制器中访问它,如下所示:

function indexAction()
{
    $session = $this->_helper->session;
}

推荐阅读
黄晓敏3023
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有