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