答案 1
我会选择教义。在我看来,这是一个更活跃的项目,并且作为symfony的默认ORM,它得到了更好的支持(即使官方认为ORM是平等的)。
此外,我更喜欢您处理查询的方式(DQL而不是标准):
<?php
// Propel
$c = new Criteria();
$c->add(ExamplePeer::ID, 20);
$items = ExamplePeer::doSelectJoinFoobar($c);
// Doctrine
$items = Doctrine_Query::create()
->from('Example e')
->leftJoin('e.Foobar')
->where('e.id = ?', 20)
->execute();
?>
(学说的实现对我来说要直观得多)。
另外,我真的更喜欢你在教义中管理关系的方式。
我认为教义文档中的这个页面值得一读:http://www.doctrine-project.org/documentation/manual/1_2/en/introduction:doctrine-explained
总而言之:如果我要开始一个新项目,或者不得不在学习教义和推进之间做出选择,我总有一天会选择教义。
答案 2
我有偏见,因为我对Propel的下一个版本有一点帮助,但你必须考虑到Propel确实是第一个可用的ORM,然后在Therism创建时有点滞后,但现在又有了积极的开发。Symfony 1.3/1.4 附带 Propel 1.4,大多数比较都停留在 Propel 1.3。此外,Propel (1.5) 的下一个版本将包含许多改进,尤其是在创建您的标准方面(导致您编写的代码更少)。
我喜欢Propel,因为它似乎不如 Doctrine 那么复杂:大多数代码都在少数生成的类中,而 Doctrine 则将功能拆分为许多类。我喜欢对我使用的库有很好的了解(不要有太多的“魔术”),但是当然,我对Propel有更多的经验,所以也许教义在幕后并不那么复杂。有人说Propel更快,但你应该自己检查一下,并考虑这是否超过其他差异。
也许你还应该考虑不同框架的Symfony插件的可用性。我相信Propel在这里有优势,但我不知道列出的插件中有多少仍然与最新版本的Symfony保持同步。
推荐
-
相当于Java中PHP的crypt函数 我正在将我的PHP代码迁移到Google App Engine - Java。因此,我需要一个相当于Java中PHP的crypt函数,因为我已将使用crypt的注册用户的所有密码存储在我的数据库中。 编辑1:这是我用于加密密码的php
-
需要有关如何从接受语言请求标头获取首选语言的示例 我需要一个代码示例或库来解析标头并返回我的首选语言。 指出: “接受语言请求标头”字段类似于“接受”,但限制首选作为请求响应的自然语言集。语言标记在第 3.10 节中定义。
-
无法在 Java 和 PHP 之间交换使用 AES-256 加密的数据 我的问题是:我在Java中加密的东西,我可以在Java中完全解密,但PHP不能解密。我用加密的内容可以使用 解密,但不能在 Java 中解密。 我想从Java应用程序发送和接收加密数据到PHP页面,所以我
-
-
Quercus是Java环境中PHP的可行替代品吗? 对于任何偶然发现这个问题的人,他们不知道是什么 - 它是用Java完成的PHP的实现。 对于我目前正在从事的项目,我们通过cgi在servlet上提供php页面(我知道它很笨拙,但这是支持遗留代码的要求
标签