我想问一下Zend Framework中的会话处理。我正在使用Zend_Session_Namespace进行会话处理。我的问题是我应该如何以有效的方式实现这一点?此时我会在每个控制器的操作中进行会话检查。
我应该如何在布局文件中处理会话处理,因为我现在这样做(使用sessionExists()检查每个操作并检查userId是否已设置)似乎非常低效和重复。
thanx获得所有支持! :)
P.S。如果有任何帮助,这是我在控制器中用于会话检查的函数:
private function checkSession()
{
$session = new Zend_Session_Namespace("userSession");
if(Zend_Session::sessionExists() && $session->__isset("userId"))
{
return true;
}
else
{
return false;
}
}
答案 0 :(得分:1)
Joellord发布的链接应该有所帮助。如果您需要在每个请求上运行某些内容,您应该考虑使用控制器插件 - Documentation是一个开始的好地方。
如果您实施auth系统,此代码将告诉您用户是否已登录:
$ auth = Zend_Auth :: getInstance();
if($ auth-> hasIdentity()){//做某事......
它还可以扩展为您提供用户对象,他们的角色/权限等等。
Matthew Weier O'Phinney的This article是使用Zend_Auth了解基本身份验证的绝佳资源。