Php 在Zend框架中处理会话处理的最佳方法
所以我在Zend框架中启动,希望实现一个站点范围的“用户”会话。。。。我可以从应用程序中的所有模块/控制器轻松访问的内容 我想,我应该在库中创建一个新名称空间并扩展控制器,比如:Php 在Zend框架中处理会话处理的最佳方法,php,zend-framework,cookies,Php,Zend Framework,Cookies,所以我在Zend框架中启动,希望实现一个站点范围的“用户”会话。。。。我可以从应用程序中的所有模块/控制器轻松访问的内容 我想,我应该在库中创建一个新名称空间并扩展控制器,比如: class MYCUSTOMLIB_Controller_Action extends Zend_Controller_Action { protected $_userSession; function preDispatch(Zend_Controller_Request_Abstract $re
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_命名空间或Zend_Http_Cookie,以及如何加密和xss清理Cookie,还是自动完成?您应该在引导中初始化会话。您可以将其放入Zend_注册表并以这种方式访问它,也可以通过调用$this->getInvokeArg('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;
}
您确定视图帮助程序吗?这看起来像是视图帮助程序和操作帮助程序的混合:)视图帮助程序也使用direct method()吗?对于view helper,它应该是session(),不是吗?抱歉。它应该是一个行动助手!我已经更新了代码。
function indexAction()
{
$session = $this->_helper->session;
}