Zend Framework:: ORM - учение/продвижение по Zend_Db_Table

Кто-нибудь предлагает использовать внешний ORM, например Doctrine/Propel, над defualt Zend_Db_Table в Zend Framework?

Я думаю, что ваши ответы по причинам были бы полезны для сообщества ZF.

-DevD

3 ответа

Это зависит от того, как вы разработали свое приложение.

За исключением ActiveRecord, ZF предоставляет реализации для трех из четырех Архитектурных шаблонов источника данных в PoEAA. Если объекты вашей модели очень тесно связаны с вашей структурой базы данных, то для вашего приложения могут быть достаточно компонентов ZF.

Если ваши объекты сопоставляются/агрегируются из нескольких таблиц, пользовательский DataMapper поверх классов ZF DB или полноценный ORM, например Doctine или Propel, может быть лучше подходит. Только вы можете это решить.


Полноценный ORM может также предоставить некоторые дополнительные функции, которые вам полезны. Некоторым может понравиться DQL, как используется в Doctrine, другие, возможно, хотели бы избежать написания запросов вручную для извлечения объектов и, возможно, предпочли бы беглые интерфейсы, такие как API запросов ModelCriteria, в предстоящем Propel 1.5.

В принципе, все зависит от ваших собственных потребностей, нет единого "лучшего решения", которое бы соответствовало всем проектам.


Я бы порекомендовал:

  • Doctrine 2.0 - кросс-платформа, простота использования, хорошая производительность, хорошая документация, поддержка пространств имен, мощный, возможно, это будет часть ZF 2.0
  • Doctrine 1.2 - кросс, платформа, простота в использовании, простота в использовании, полезные расширения (например, NestedSet, Taggable, Commentable), хорошая документация, работа с автозагрузчиком ZF, инструмент CLI, YAML, data fixtures.

licensed under cc by-sa 3.0 with attribution.