好吧,我只是想在PHP中製作更鬆散耦合的類等,以提高我的技能。我的計算機上有一個本地測試數據庫,用戶表中有一個名爲「role」的列。我正在嘗試構建一個函數,該函數是獲取用戶權限的一般函數,因此不依賴於他們正在嘗試執行的特定任務。將權限存儲到多維數組中php
當用戶試圖做一些事情,如創建一個新的論壇主題等等,我想查詢數據庫,如果「角色」是一個特定的值,多維數組像下面的存儲權限:
$permissions = array(
'forums' => array("create", "delete", "edit", "lock"),
'users' => array("edit", "lock")
);
然後,我希望能夠在用戶通過檢查isset($ var)發佈表單後在每個PHP文件的頂部鍵入以下內容來搜索特定權限的數組。因此,如果用戶試圖編輯一個用戶我希望能夠做這樣的事情通過,如果一個類的方法可能如下
if (Class::get_permissions($userID),array($permissionType=>$permission))) {
// do query
} else {
// return error message
}
如何將有一個鬆散耦合的權限檢查功能,將一個好辦法能夠做到這樣的事情?它不必像這樣完全佈置,只是鬆散耦合,因此可以重複使用,而不受某些任務的束縛。但我希望能夠擁有一組權限,而不僅僅是「admin」,「user」等重用性,所以它不會限制我的選擇。因爲我現在在php腳本文件的頂部有一堆代碼。
if (Class::get_permissions($userID) == "admin") {
// allow query
} else {
// return error
}
感謝您的任何意見,以幫助我得到這一點,我不會一直寫同樣的東西。
Zend的ACL部分已經介紹了他們的acl工作方式:http://framework.zend.com/manual/en/zend.acl.introduction.html –