因此,我在 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 还是自动完成?
我也会在引导程序中初始化:
//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;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)