2011-05-13 49 views
0

我目前正在使用Zend Framework開發一個項目& Doctrine 2,我對這兩種工具都非常滿意,但是我想知道如何使用這個共享數據庫數據的特殊用戶對象,會話數據(授權,PARAMATERS,ACL等。)你如何使用用戶實體及其連接狀態?

我經常看到這種implemtation的:

if (User::isConnected()) 

,我的問題是,我的User類,是用於通過主義實體,以及它的不是問題,但是如果我的用戶有一些複雜的角色和/或權限,它可能會添加一些業務邏輯。順便說一句,我不知道爲什麼(只是一種感覺,也許是錯誤的),但它看起來不是一個好主意,我敢肯定它有設計限制。

目前我的想法是使用UserService,我已經嘗試使用這樣的圖層作爲我的其他實體,它看起來非常有趣。

什麼是這樣的:

$service = new UserService($entityManager); 
if ($service->isUserConnected($user)) 

它可以讓我用另一種服務,如IdentificationService可能存儲「用戶」(或任何其他「資源」,它可以被授權)爲會話和檢查授權。

同樣可以適用與喜歡的方法來AuthorizationService:

$service->isAuthorized($user, $resource, $action) 

你對這種執行的任何反饋?和/或任何例子?

你的想法是什麼?

謝謝。

回答

0

爲了管理這些東西,你有必要考慮一些與用戶實體分開的服務。實體不應該知道數據訪問等。

看看Zend_Auth。您需要創建Zend_Auth_Adapter以使用Doctrine2。有一點Google搜索出現了this example,這可能很有教育意義。 Zend_Auth非常簡單,並且在您對用戶進行身份驗證後,可以很好地與Zend_Acl管理授權的內容配合使用。

相關問題