任何允许对象具有动态(运行时定义)字段的ORM for PHP


Any ORM for PHP allowing objects with dynamic (runtime defined) fields?

有人见过PHP的ORM吗?它不需要我在开发时定义所有内容?

例如,我希望通过"rating"插件(例如使用钩子)将"rating"字段添加到"User"对象中。我希望插件也能添加这个新字段的验证规则。当然,插件还将在安装时执行ALTERTABLE,在数据库中的"用户"表中添加一个新字段。

添加了:我不需要ORM在运行时的"猜测"数据库结构(比如DataMapper ORM)。我需要插件(php脚本)来向对象添加字段。

我知道codeigniter的datamapper orm在运行时使用"DESCRIBE"来标识表结构。不知道这对你的项目是否有好处。

也许是红豆,http://redbeanphp.com/,有什么给你的吗?我自己还没有试过,但从外观上看,它似乎能满足你的需求。

添加了我之前的评论;如果您确定要修改核心表,可以使用Propel。看看我关于如何生成运行时类的文章。不过,我不知道如何进行迁移(这正是ALTER TABLE所需要的),但我相信它是受支持的。

此外,如果你愿意的话,我现在正在使用很多Propel的东西来生成数据库生成器,可以提供更多的代码示例。我在写这篇文章时发现,在网上操作表/模型的例子不多,但Propel 1.x绝对可以做到