Привет, Хабр!
Написал класс, использующий Zend_Db_Table_Select и позволяющий использовать Dynamic Finder в моделях в проектах на Zend Framework. Статья о том, что этот класс умеет, а также ссылка на исходный код предлагаются вашему вниманию.
Что это, зачем?
Dynamic Finder – способ, позволяющий получать данные из таблицы БД, записывая названия искомых полей в виде названия метода класса, а значения этих полей — в качестве аргумента метода. Например, может использоваться в экземпляре класса модели, связанной с какой-либо таблицей БД.
Dynamic Finder позволяет избежать написания ряда методов вида getById(…), getByLoginAndPassword(…), getAllByCountry(…) внутри модели в виде построения полноценных SQL-запросов и выборок. Вместо этого, в данной реализации достаточно подключить Dynamic Finder к модели должным образом, и, далее, программист может использовать эти методы модели непосредственно в контроллере или представлении. При этом реально эти методы в модели вообще не существуют.
Таким образом, экономится время работы программиста.
Dynamic Finder уже был реализован в том или ином виде в различных библиотеках и фреймворках, в частности, в Ruby on Rails.
В данной реализации Dynamic Finder является надстройкой, использующей Zend_Db_Select / Zend_Db_Table_Select, и предназначен для выборок из только одной таблицы.