Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
具有PHP访问控制的开源ORM_Php_Orm_Access Control - Fatal编程技术网

具有PHP访问控制的开源ORM

具有PHP访问控制的开源ORM,php,orm,access-control,Php,Orm,Access Control,我有许多项目(有些是商业项目,有些不是),在这些项目中,现场和资源级别的访问都是必需的。当然,使用ORM项目并为其做出贡献比重新发明轮子要好,但我还没有找到一个具有任何访问控制层的项目;它们中的大多数似乎将这一点留给了域对象,而这些类不能从超类继承 也许可以使用fork原则——但我还是不喜欢单独使用。我一直选择ORM(v1.5),我发现它更轻、更快、更容易理解。它还具有自定义行为,这可能是访问控制插件的开始阶段,至少对于资源来说是这样 您可以看到一些关于行为的文档,wiki很好地解释了如何构建自

我有许多项目(有些是商业项目,有些不是),在这些项目中,现场和资源级别的访问都是必需的。当然,使用ORM项目并为其做出贡献比重新发明轮子要好,但我还没有找到一个具有任何访问控制层的项目;它们中的大多数似乎将这一点留给了域对象,而这些类不能从超类继承


也许可以使用fork原则——但我还是不喜欢单独使用。

我一直选择ORM(v1.5),我发现它更轻、更快、更容易理解。它还具有自定义行为,这可能是访问控制插件的开始阶段,至少对于资源来说是这样

您可以看到一些关于行为的文档,wiki很好地解释了如何构建自己的行为


希望我能帮助

创建一个用于用户访问控制的DB结构,并构建使定义的规则有效的代码,这不是ORM的工作(它将帮助您做到这一点,但它不会为您做到这一点)

然而,这种访问控制的需求是经常出现的(命名为ACL或RBAC;似乎您正在寻找ACL),一些项目已经出现,它们为访问控制创建了所有数据库结构,例如(Symfony)或(Zend Framework)

也要检查那些SO线程:


我们希望做的是比RBAC更细粒度,我看不出如何将其与ORM分开的原因是,无论域对象是否加载到工作模型中,或者某些字段是否加载到自定义查询/映射中,字段级访问控制都需要起作用,内部控制要求我们不允许一个人访问特定的组合,因此ORM是唯一一个既低到足以在字段级别强制执行访问控制,又高到足以理解对实际资源的影响(主要是与域对象的一对一)。抱歉,我完全忽略了“字段-”您的问题中的访问控制要求。。。在谷歌搜索之后,我没有发现任何有趣的东西。你应该尝试一下David Conde答案中的“推进行为”概念(因为你不必“分叉”推进,即使在将代码添加为行为之后,你仍然可以升级它)。我也查看了推进(实际上仍在阅读源代码),但它只涉及到访问控制原则,并且需要Zend框架——如果您已经致力于域端的其他框架,那么需要添加一个沉重的部分。您在哪里发现Prope需要Zend框架?好吧,事实并非如此。