2012-08-01 40 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學習基本認證的絕佳資源。