Zend_Db_Table vs PHPDoctrine
Выдалось немного времени на эксперименты с Zend_Db_Table (ZDT) и по результатам хочу отписаться сюда
Итак. Не так давно в голову закралась мысль “зачем мне ORM, если у ZendFramework есть Zend_Db_Table?”. Вобщем-то довольно справедливое сомнение, если учесть, что ZDT содержит всю ту же функциональность, характерную для ORM: тут и биндинг полей к свойствам, тут и связи (даже n:m!), тут и магические аксессоры (magic accessors), тут и.. вобщем много тут всего
Но…
…Еще как-то более года назад, когда работал на varien.com, “посчастливилось” впервые познакомиться с ZDB. И почему-то тогда он мне сразу не понравился. Как-то все было неудобно, неинтуитивно и неприятно :-! Но ведь прошло столько времени, и даже версия ZF успела трижды смениться… И вот я снова о нем вспомнил.
В качестве теста решил написать небольшое приложение, состоящее из 6 связанных между собой различными способами таблицами.
2 часа на освоение ZDT по документации и написание необходимых моделей. Закончив и полюбовавшись на содеянное решил… удалить все. Точнее нет - не так. Не удалить. Но все по-порядку.
Наученный горьким опытом, что бизнес модели нельзя описывать открытым ORM, модели на ZDT сразу же реализовывал через закрытые свойства и соответствующие им геттеры и сеттеры ( getters and setters ). Но проблема оказалась не в этом. Гнавшись за производительность (да - ZDT позволяет конструировать более гибкие запросы), я упустил из внимания то, что ZDT не представляет гибких способов реализации часто используемых паттернов таких как NestedSets. Кроме этого ZDT не позволяет гибко обрабатывать результаты JOIN запросов - коллекции раздельно не формируются
Очень жалко было расставаться с очень удобным профайлером, но… Вооружившись Doctrine и готовыми бизнес-объектами, через 20 минут у меня была готова полнофункциональная модель, но уже на основе ORM
Вывод: Doctrine гараздо удобнее чем ZDT по соотношению скорость-качество ну и субъективно тоже конечно ![]()
Tags: Doctrine, ORM, PHP, Zend, Zend Framework, Zend_Db_Table, бизнес-объекты, разработка
Также рекомендую к прочтению:
Август 16th, 2008 at 20:17
Сколько же вас таких… любящих сравнивать мягкое с тёплым.
Аж тошно, право слово.
Август 16th, 2008 at 20:20
Вы очень объективно высказали мнение
Ноябрь 22nd, 2008 at 15:20
ORM Doctrine Реальная вещь, я постоянно ищу что-то новое и все равно возвращаюсь к ней.
А всем кто ее не юзает могу только пособолезновать…