【发布时间】:2012-01-12 18:35:40
【问题描述】:
好的,我只是想更好地在 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
}
拥有一个松散耦合的权限检查功能能够做这样的事情是一种好方法吗?它不必完全像这样布局,而只是松散耦合,以便可以重用而不绑定到某个任务。但是我希望能够拥有一系列权限,而不仅仅是“管理员”、“用户”等以实现可重用性,因此它不会限制我以后的选择。因为我现在在我的 php 脚本文件的顶部有一堆这样的代码。
if (Class::get_permissions($userID) == "admin") {
// allow query
} else {
// return error
}
感谢您提供的任何意见,以帮助我解决这个问题,我不会一遍又一遍地写同样的东西。
【问题讨论】:
-
Zend 的 ACL 部分很好地介绍了他们的 acl 的工作原理:framework.zend.com/manual/en/zend.acl.introduction.html
标签: php oop class extraction