我正在为我的项目开发基于zend模块的结构。由于Zend_Auth
类的默认会话存储为Zend_Auth
。我根据被调用的模块改变了。对管理员说我使用auth名称空间Admin_Auth
,对于默认模块我使用名称空间名称Default_Auth
。
$auth = Zend_Auth::getInstance();
$auth->setStorage(new Zend_Auth_Storage_Session('Admin_Auth'));
我这样做是因为,如果我执行Zend_Session::destroy()
,即使默认模块也会销毁完整会话。所以在注销Zend_Session::namespaceUnset('Admin_Auth');
每次在不同的控制器中我都必须使用
$auth = Zend_Auth::getInstance();
$auth->setStorage(new Zend_Auth_Storage_Session('Admin_Auth'));
只是指出相应的会话数据。
我正在考虑将它移到模块Bootstrap.php
中
protected function _initAuth(){
$auth = Zend_Auth::getInstance();
$auth->setStorage(new Zend_Auth_Storage_Session('Admin_Auth'));
return $auth;
}
首先,这是正确的方法吗?
其次,如果是,那么如何在每个控制器中访问$auth
的返回值_initAuth()
?请