Пагинация и DAL

В настоящее время я реализую свой DAL с использованием DAO. Я хотел бы выполнить разбиение на страницы на уровне базы данных, поэтому в моем DAO у меня сейчас есть такие методы, как

getEvents($page, $limit) 

и

getEventCount()

Затем на моем уровне обслуживания я возвращаю массив

array($events, $eventCount)

и настройку разбивки на страницы в моем контроллере (используя Zend_Paginator).

Что-то кажется неправильным в этом подходе, но я не могу понять его.


person blockhead    schedule 01.07.2009    source источник


Ответы (1)


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

На мой взгляд, гораздо больше абстракции, чем это, было бы излишним.

person Gabriel Solomon    schedule 01.07.2009
comment
В основном то, что я собирался сказать. Этот вопрос связан с: stackoverflow.com/questions/1063664/ - person Kieran Hall; 01.07.2009
comment
Мои модели - ПОПО. Другими словами, они не расширяют никакие другие классы (иногда они реализуют интерфейсы, такие как Zend_Acl_Resource_Interface). Но кроме этого, мои модели не определяют, как они получают свои данные и как они сохраняются. В этом суть DAL. - person blockhead; 01.07.2009
comment
@ Kieran.Hall Я не знаю, какое отношение этот ответ имеет к моему вопросу. - person blockhead; 01.07.2009