2011-11-18 41 views
0

在Zend Framework 1.X中哪種方法更好?爲什麼?
方法-1:
創建一個擴展Zend_Acl的(子)類,用於管理所有的Acl。它將允許我們使用$ this對象來使用所有的Zend_Acl特性/函數。什麼是Zend Acl的首選實現方法

方法-2:
創建自定義類,其保持Zend_Acl裏對象並執行對象上執行操作。在這裏我們可以創建包裝函數,並且可以控制對Zend_Acl基本函數的訪問,並且只使用少量的特性。

單一模式可以用於這兩種方法,以確保在整個站點使用相同的Zend_Acl。

我會尋找一種方法,我稍後可以輕鬆地將它轉換爲ZF-2.0。如果有其他方法,請提及,我會相應地更新這篇文章。

更新:有沒有其他的方法可以在整個站點維護一個Zend_Acl對象?你怎麼看待使用帶有方法1的單例,並使用自定義方法,這將給我們Zend_Acl的所有預定義方法以及我們的自定義包裝。

回答

3

我會尋找一種方法,我稍後可以輕鬆地轉換到ZF-2.0。如果有其他方法,請提及,我會相應地更新這篇文章。

這句話強烈支持方法2,因爲你的包裝作爲一個適配器ACL實施,且應用程序只與您的適配器直接交互,而不是Zend_Acl。因此,您可以稍後將具體實現(即組成Zend_Acl)更改爲另一個,無論是Zend\Acl還是Symfony 2組件或您自己編寫的東西。

0

在我的項目中,我使用模型來管理整個ACL系統(添加資源,添加角色等)。顯然這個類擴展了Zend_Acl。此外,我使用一個使用preDispatch方法的插件來檢查發出請求的用戶是否被允許訪問請求的url。

相關問題