Марк Робинсон дает отличный ответ.Я просто собираюсь подтвердить то, что он говорит, поделившись нашим опытом работы с Doctrine2.
Я решил использовать Doctrine2 в качестве нашего ORM с Zend Framework некоторое время назад.Наш проект все еще разрабатывается, но выбор D2 был решением, о котором мы ни разу не пожалели.Несмотря на то, что вам все еще нужно много думать о своей архитектуре данных, D2 дает вам гибкость, чтобы иметь возможность изменить эту модель на более поздний срок, если потребуется.Это позволило нам быстро опробовать вещи на ранних этапах, а пространство для роста и изменения позже, когда мы решили, что все было не совсем правильно - это происходит.
По отношению к точке зрения Марка об абстракции.Еще одна вещь, которая мне нравится в D2, это то, что мы работаем с простыми старыми объектами PHP.Не стоит недооценивать способность мыслить с точки зрения объектов - как для людей, ответственных за моделирование данных, так и для разработчиков, которые работают с данными - это сделает вашу жизнь проще, поверьте мне.Также хорошо иметь встроенную документацию по отображению ORM (если вы выберете подход с докблоком).
Правильно, производительность.Как говорит Марк, есть способы и способы ускорить процесс, но всегда будут некоторые накладные расходы.Когда бы вы ни внедрили еще один программный уровень, произойдет некоторое снижение производительности, но это компромисс.Для нас компромисс - преимущества использования ORM по сравнению с производительностью - стоит того.Мы потратили бы больше времени на отладку кода, а не на выполнение задач без ORM.
В любом случае, D2 может помочь вам с кэшированием запросов, результатов и метаданных.Хотя вы, вероятно, просто хотите использовать кэш-массив во время разработки, замечательно, что есть средства для таких вещей, как APC, memcache и т. Д., Когда вы собираетесь тестировать и развертывать.Вы можете даже разработать свой собственный, если вы смелый.
http://www.doctrine -project.org / docs / orm / 2.0 / en / reference / caching.html
Надеюсь, это поможет, возможно, я что-то пропустил, но если у вас есть какие-либо вопросы, просто задайте их, и я сделаю все возможное.