Ответ 1
(7-Март-2013) Отказ от ответственности: этот ответ, вероятно, сейчас немного устарел. На данный момент я не соглашаюсь с сообществом PHP, и это сравнение между Doctrine ORM v2 и Zend Framework v1. Это сравнение яблок и апельсинов, потому что они две разные вещи.
Внезапный Zend_Db представляет собой просто расширенный слой абстракции базы данных поверх PDO, где Doctrine 2 является реляционным Map Object (который находится поверх его собственного DBAL).
Doctrine 2 намного лучше подходит для более сложных слоев домена, потому что вся ваша бизнес-логика, логика сохранения и т.д. разделены на несколько классов, поэтому они не обслуживают несколько ролей. Кроме того, поскольку у вас есть больше классов, которые являются более чистыми и слабо связанными, это значительно упрощает их тестирование.
Кроме того, вы будете писать только часть SQL, которую вы используете Zend_Db, потому что вы можете манипулировать объектами объекта, а Doctrine преобразует эти изменения в базу данных. Сгенерированный SQL также использует транзакции, которые дают вам достойную производительность!
Я бы рекомендовал вам ознакомиться с Domain-Driven Design, чтобы лучше понять, почему Doctrine 2 настолько замечателен.
Не поймите меня неправильно, но вы можете сделать DDD с Zend_Db, но на самом деле это не OOTB (потому что это не ORM), и не будет почти таким же мощным и полнофункциональным, как Doctrine 2.