开放源代码的ORM与PHP的访问控制

问题描述:

我有一些项目(一些商业的,一些没有),其中需要场和资源级别的访问。当然,使用和贡献ORM项目相当于重新发明轮子,但是我一直无法找到具有任何访问控制层的项目;它们似乎大部分都是由域对象决定的,而这些类不能从超类继承。开放源代码的ORM与PHP的访问控制

分叉主义可能是可能的 - 但是,我不想独自潜水。

我的ORM选择一直是Propel(v1.5),我觉得它更轻,更快,更易于理解。它还具有自定义行为,这可能是您的访问控制插件的起始阶段,至少对于资源而言。

你可以看到关于行为的一些文档herethis维基解释了如何构建自己的。

希望我能帮助

+0

我还通过推进看着(仍然通过源读取实际),但它并没有解决访问控制更多而不是学说,并且需要Zend框架 - 如果你已经承诺在域名的其他框架上增加一个沉重的部分。 – 2011-04-06 23:51:30

+1

你在哪里发现Propel需要Zend Framework? AFAIK并非如此。 – 2011-04-07 07:32:32

+0

我必须穿过我的电线 - 不知道现在哪一个需要... – 2011-04-09 04:01:54

创建DB结构,用户访问控制,以及构建代码,这将使定义的规则有效,是不是ORM工作(它会帮助你做到这一点,但它赢得了不会为你做)。

然而,这需要访问控制的频繁(命名为ACLRBAC;似乎你正在寻找一个ACL),以及一些项目已经出现,它创建所有DB结构为,例如sfGuard(Symfony)或Zend_ACL(Zend Framework)。

检查这些SO线程太:

+0

我们要做的是RBAC更细粒度,以及我无法看到如何将它与其分开的原因ORM是指无论域对象是否加载到工作模型中,还是某些字段都加载到自定义查询/映射中,字段级访问控制都需要工作。 – 2011-04-06 23:31:55

+0

由于我们处理大量敏感数据,因此内部控制要求我们不允许一个人访问特定的组合,因此ORM是唯一足够低以在现场级别实施访问控制并且足够高了解对实际资源的影响(主要是与域对象一对一)。 – 2011-04-06 23:34:02

+0

对不起,我已经完全忽略了你的问题中的“字段”访问控制要求......经过一些谷歌搜索后,我没有发现任何有趣的东西。您应该尝试一下David Conde的答案的“推动行为”的想法(因为您不必“分叉”Propel,即使在添加代码作为行为后仍然可以升级它)。 – 2011-04-07 07:47:31