1

我来自 Codeigniter MVC 背景,我们已经使用了一段时间。是时候为一个大项目推出我们自己的框架了,但是我们现在已经来到了数据库部分,并立即感到有些困惑。
在 Codeigniter 中,我们为所有 SQL 数据库连接使用了 ActiveRecord,效果很好,但由于它不是一个单独的部分,我们正在寻找一种 ORM 解决方案,以便在我们的模型中编写尽可能少的代码来获得我们的来自数据库的数据。

我们已经回顾了包括 Doctrine2 和 Propel 在内的主要替代方案,但我们对这些配置文件的事实以及这些库的真正广泛性感到非常害怕。

从维护的角度来看,选择一个需要在更多文件中进行编辑的 ORM,然后在推出架构更改时选择明显的 MVC,这真的很有意义吗?

4

3 回答 3

4

说实话,propel 和教义可能是目前市场上最好的 php ORM,我使用与 symfony 框架捆绑在一起的 propel,但是一旦你了解了文档,它确实会产生巨大的差异,并且两个 ORM 都知道如何避开当您需要本机 sql 时,您的方式。我建议您从两者中选择一个(推进/学说),然后花时间阅读文档,最终结果将是值得的。

于 2010-08-20T11:34:12.230 回答
2

好吧,实际上对于 Propel,您在更改架构时不必编辑很多文件(如果您坚持基本的 ORM 使用)。您只需更新您的数据库模式文件 (schema.xml),然后运行 ​​propel-gen,该工具将在您指定的文件夹中(在 build.properties 中)为您创建必要的 Propel 类。

永远不要编辑 om 文件夹中的 BaseXXX 类,因为每次更改架构并运行 propel-gen 时,它们都会被覆盖。只需将您的业务逻辑添加到主文件夹中的类(默认情况下继承基类),它们只创建一次,之后不会被 propel-gen 触及。

于 2010-08-20T11:29:38.680 回答
1

有了学说,你基本上可以只依赖 schema.yml 文件(YAML 格式)。使用该文件,学说能够生成 SQL,模型类,过滤器,......一切(当然,如果你愿意,你可以修改文件,但在大多数情况下你不会)

于 2010-08-21T03:58:02.060 回答