Как использовать Zend_Db без SQL-запросов? - PullRequest
2 голосов
/ 12 мая 2010

Когда я в последний раз работал с Zend_Db, я помню, что раньше писал SQL-запросы вручную. Я искал какое-нибудь приложение ORM, но, поскольку я прочитал что-то вроде Zend_Db, также смогло это сделать, я начал пробовать это, но не могу найти ни хорошего учебника, объясняющего это, ни хорошей документации.

Я прочитал что-то из шаблона Lake Gateway и класса ModelMapper, но не могу понять.

Может ли кто-нибудь осветить мой путь? : P

1 Ответ

3 голосов
/ 12 мая 2010

Все, что вам нужно для начала, доступно в Справочном руководстве Zend Framework на Zend_Db.

Zend_Db_Table - это Шлюз TableData . У него очень ограниченные возможности ORM. В основном они проистекают из способности определять отношения между таблицами. Зависимые наборы строк могут быть загружены лениво с соответствующими методами поиска для Zend_Db_Row экземпляров , возвращаемых запросом к TDG. Это не обязательно заставит вас писать не SQL, а меньше SQL. Под капотом Zend_Db_Table используется подкласс Zend_Db_Select для построения запросов SQL через Fluent API . См. Справочное руководство по , как работать с TDG и как получать связанные данные.

ModelMapper, к которому вы обращаетесь, - это другой шаблон, называемый DataMapper . Обычно это используется при работе с модель домена . DataMapper обрабатывает несоответствие импеданса , которое обычно происходит, когда объекты Domain и их постоянное представление не совпадают. Нет стандартного рецепта для этого класса. В зависимости от количества несовпадений DataMapper может стать довольно сложным. Усилия по созданию универсального преобразователя для ZF были прекращены в пользу интеграции Doctrine с ZF . Но пример пользовательского DataMapper можно найти в справочном руководстве.

Возможно, вы захотите просмотреть SO для PHP ORM , особенно этот вопрос:

...