Ответ 1
.. но это их некоторая Функциональность, которую Zend_Db может сделать, и ORM не может
Никакой реальной функциональности, как таковой; в конце концов, вы можете обрабатывать сохранение через ZDB и ORM или любой другой метод. Но использование ORM иногда позволяет сосредоточить внимание немного больше на ваших моделях и меньше на вашей настойчивости.
и есть ли какая-нибудь книга для Doctrine 2??? а не документацию!
На самом деле, я считаю, что официальная документация Doctrine2 как этот от Boris Guery), который позволяет вам настройте Doctrine при загрузке, чтобы у вас был легкий доступ к диспетчеру сущности в ваших плагинах, контроллерах и других сервисах. Для примера, который выполняет загрузку Doctrine2 с помощью метода _initXXX()
, см. Код в этом проекте под руководством Эдди Джауде.
Наконец, нужно ли мне изучать доктрину 1.2 перед Доктриной 2?
Нет, Doctrine2 явно отличается от Doctrine1.
и для экспертов, которые используют как то, что вы посоветуете мне использовать?
Ну, я не эксперт. Но я нахожу Doctrine2 (который является чем-то вроде подхода настойчивости на основе карт) более естественным, чем подход Doctrine1 ActiveRecord, более легко позволяющий моим моделям представлять фактические объекты домена - пользователи, сообщения и т.д., А не быть шлюзами для извлечения объектов и настойчивость. Используя EntityManager
в качестве основного средства для сохранения, мне легче структурировать другие службы, которые нуждаются в постоянстве; Я просто передаю EntityManager
как аргумент конструктора. Репозитории Doctrine2 обеспечивают чистое место для размещения пользовательских запросов.
Не все это невозможно в ZDB или других ORM; это просто, что я считаю это простым с Doctrine2.
Реферат: Doctrine2 является удивительным.; -)