Вот колеблюсь как лучше делать...
Допустим нужно чтоб модель выдавала список пользователей, отобранный по множеству критериев... причем отбираться они будут во многих контроллерах, и со своими критериями...
И как поступил бы я, если не заморачиваться:
class Users {
function get_user_list(Zend_Db_Select $select){
$rows = $table->fetchAll($select); //$table - Zend_Db_Table
return new UserList($rows);
}
function get_select() {
return $table->Select()
}
}
А в контроллере уже строил SQL запрос:
$select = Users->get_select()->where(......)->where(.....)->where(....)->order(....)-->limit(....);
$userlist = Users->get_user_list($select);
В итоге получается с одной стороны просто, а с другой: с БД работает не только модель, но и контроллер - по сути
--------------------------------
Другим способом можно объявить метод так:
function get_user_list($id = null, $email_like = null, username_like = null, username = null, lastlogin_from = null, lastlogin_to =null, и т.д. и т.п.){
// И потом сто строк кода анализа, какие параметры заданы, какие нет, чтоб создать запрос, и кучу времени на тестирование....
}
-------------------------------
Вот сижу и думаю как лучше сделать.... :)
Уже мысли написать свой объектный язык запроса к моделям, на что убью еще энное кол-во времени :)