Где хранить кастомные классы бизнес логики в Yii2 и стоит ли хранить запросы к бд в ее модели?
Всем здравствуйте, подскажите пожалуйста по такому вопросу. Yii2 advanced, допустим есть модель таблицы, находиться в папке frontend/models/Review.php, она описывает одноименную таблицу в бд "review" и наследуется от класса ActiveRecord, таблица содержит набор полей и нам необходимо получить, допустим, все записи по дате. Создаем метод public static function getReviewByData( $data )...который возвращает нам наши записи. Правильно ли делать модель толстой и хранить там всю логику, все методы получения и записи данных, а потом в контроллере вызывать их, либо стоит создать отдельный класс для CRUD-манипуляций и вызывать методы из него, либо вообще ( видел примеры когда создают запросы к бд во view, что считаю в корне неправильным ). И другой вопрос, где в шаблоне advanced хранить бизнес логику (свои классы), какие правильные практики существуют ( естественно чтобы была возможность автозагрузки классов стандартными средствами yii2 ). Допустим я хочу реализовать какой-либо паттерн, мне стоит хранить весь паттерн в каком либо одном namespace или разные классы и интерфейсы в разных namespace...Заранее спасибо за ответ.
таблица содержит набор полей и нам необходимо получить, допустим, все записи по дате. Создаем метод public static function getReviewByData( $data )...который возвращает нам наши записи. Правильно ли делать модель толстой
Вот что по этому поводу говорят доки: www.yiiframework.com/doc-2.0/guide-db-active-recor...
а именно советуют создавать класс ModelQuery унаследованный от ActiveQuery при этом имея класс Model унаследованный от ActiveRecord и при как правило сюда еще добавляется ModelSearch. В доках все лежит в model, но я внутри model создаю подпапки query и search.
Я приблизительно так и делал, но в то же время один из разработчиков yii2 Дмитрий Науменко на своей презентации рекомендует иначе: slides.silverfire.me/2016/gl-yii2-tips/#
santaatnas: Сколько людей столько мнений. По сути все это и так есть. Только к тому что я описал добавьте behavior и/или traits, добавьте helpers и будет то что он описывает. Только это не его метод, это его лопата из-за хорошего знания php и поверхностного знания yii.
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.