2012-08-01 59 views
1

我想问关于在Zend Framework中的会话处理。我正在使用Zend_Session_Namespace进行会话处理。我的问题是,我应该如何有效地实施这一点?在这一刻,我有一次会议检查我的每一个控制器的行动。Zend会话处理建议为新手:)

我应该如何处理布局文件中的会话处理,因为我现在这样做(使用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

你应该看看Zend_Acl和前端控制器插件。通过他们的能力结合起来,这是你的解决方案;) – bububaba 2012-08-01 11:58:29

+1

你可能也想看看Zend_Auth来存储用户标识。 http://framework.zend.com/manual/fr/zend.auth.html – 2012-08-01 12:18:45

回答

1

Joellord张贴的链接应该帮助。如果你需要在每个请求上运行一些东西,你应该考虑使用一个控制器插件 - Documentation是一个开始的好地方。

如果要实现身份验证系统,该代码会告诉你在一个用户是否登录:

$ AUTH = Zend_Auth的::的getInstance();
如果($ auth-> hasIdentity()){//做一些事情......

它也可以扩展为您提供一个用户对象,他们的角色/权限,等等等等

This article作者:Matthew Weier O'Phinney是使用Zend_Auth学习基本认证的绝佳资源。