PHP ORMs : Doctrine vs. 推进

标签 php orm symfony1 doctrine propel

我正在使用 symfony 开始一个新项目很容易与 Doctrine 集成和 Propel ,但我当然需要做出选择....

非常感谢。

编辑: 感谢所有回复,有用的东西。这个问题没有真正正确的答案,所以我只会将获得最多票数的答案标记为已批准。

最佳答案

我会选择 Doctrine。在我看来,这是一个更加活跃的项目,并且作为 symfony 的默认 ORM,它得到了更好的支持(尽管官方认为 ORM 是平等的)。

此外,我更喜欢您使用查询的方式(DQL 而不是 Criteria):

<?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();
?>

(Doctrine 的实现对我来说更直观)。

另外,我真的更喜欢你在 Doctrine 中管理关系的方式。

我认为 Doctrine 文档中的这一页值得一读:http://www.doctrine-project.org/documentation/manual/1_2/en/introduction:doctrine-explained

总结一下:如果我要开始一个新项目,或者必须在学习 Doctrine 和 Propel 之间做出选择,我会随时选择 Doctrine。

关于PHP ORMs : Doctrine vs. 推进,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2062473/

相关文章:

ios - 无法在 SharkORM 中使用一对多关系

php - symfony 中单个字段的多个标准?

php - 如何删除php中的html标签?

php - 使用 Symfony sfDoctrineGuardPlugin,我需要有用户组和一些权限设置等

php - 两个 SQL 查询,只有第一个返回结果

php - 如何在 Yii 更新时禁用字段

php - 丢失图像时出现 symfony 500 错误

php - 动态添加到数组

java - Hibernate 在单个事务中自动更新

数据源 : SELECT 1 or something better? 中的 MySQL 连接有效性测试