2011-05-23 124 views
1

我们正在使用Zend框架开发大量的PHP Web应用程序。什么是好的数据库模型定义语言?

目前,产品已开始趋于稳定,我们正在摆脱快速肮脏的设置,以避免回归。特别是,我们现在正在研究每个人都编辑的单个共享数据库。我们想尽快摆脱这种情况。

Zend框架似乎不支持经典的RAD(Djangoish)机制,您可以在其中定义数据模型,然后为您创建表格。所以我们正在考虑使用一个外部的ORM工具来做到这一点。

我们可以在纯SQL中定义我们的模式和初始固定设备,但这是a)详细的b)容易出错的c)太低的级别d)有问题,因为我们必须为每个受支持的数据库后端维护不同的版本。

因此,我们正在考虑使用像Doctrine或Propel这样的ORM来定义我们的模型并使用所选框架的方言创建具有其初始数据的表。应用程序使用Zend工具进行ORMing,因此两个工具之间的一致性必须手动维护,但由于变化现在更加渐进,所以这看起来并不是什么大问题。

因此,目前为止,我们正在评估Doctrine和Propel的这项任务。对我们错过的其他ORM有何建议?手头的任务可能完全采用不同的方法?

谢谢!

贡萨洛

+1

仅供将来参考。我们最终使用Rails的ActiveRecord和一个名为[standalone-migrations](https://github.com/thuss/standalone-migrations)的模块。这些工具很好用,但与PHP应用程序一起分发是一件痛苦的事情。 Windows支持也非常烦人,因为在Windows上安装Ruby很糟糕。我们计划在PHP中开发我们自己的等效工具。 – GomoX 2011-11-10 19:51:39

+0

我们最终使用了教条,但它也不是很好。请参阅此处以获取更多信息:http://stackoverflow.com/questions/9946585/are-doctrine-migrations-usable-in-production-applications?lq=1 – GomoX 2013-12-04 20:45:02

回答

1

我真的很喜欢RedBean。您将数据库模型保存在纯php中,并且可以跟踪所有内容。

RedBeanPHP是PHP的开源ORM工具 。它侧重于简单性和易用性。是什么让RedBean独特的 是它在即时创建数据库 架构。它会扫描您的数据 并调整列类型以适应您的对象属性。如果您的型号 已稳定,您可以冻结 数据库。通过这种方式,RedBean很容易在生产服务器上快速开发,但也极其快速。

由于我找到了这个ORM,我不再使用原则。

http://redbeanphp.com/

+0

完全同意。 Redbeans允许以您想要的方式完全内部化您的数据对象/模式定义,并且在维护和配置方面非常轻量级。使用RedBeans时无需维护SQL数据库。 – Yann 2014-09-19 12:24:24