Цитата (Santehnick @ 22.03.2018 - 17:20) |
twin, там не звездочка. Там все свойства объекта конвертируются в поля для селекта и только они выбираются. Если полю в таблице не найдено соответствия среди свойств объекта оно не будет выбираться. |
Цитата |
Как сказано выше, получаемые из базы данные заполняют объекты Active Record и каждая строка результата запроса соответствует одному объекту Active Record. Вы можете получить доступ к значениям столбцов с помощью атрибутов этих объектов. Например так:// "id" и "email" - названия столбцов в таблице "customer" |
Цитата (Santehnick @ 22.03.2018 - 17:20) |
Существует DAO если требуется работать с данными, зачем для этого использовать AR если это история про доменную модель, а не про данные. Сейчас это выглядит как попытка принести на кухню рот человека, чтобы перекусить, а всё остальное тело оставить лежать на диване. Если такое требуется, так не используй ооп, используй данные, dao и процедуры. Не нужно пытаться из объектов делать данные. |
Цитата (Santehnick @ 22.03.2018 - 17:20) |
И ты как-то очень странно делишь веб и не веб. |
Цитата (Santehnick @ 22.03.2018 - 15:46) |
twin, так смысл AR объектов в том, что они составляют доменную модель. Если поведение, которое должно принадлежать объекту вываливается за его пределы, то получается анемичная модель. Фреймворки на которые ты ссылаешься так и предлагают делать. Для них AR это не объект доменной модели, а бессмысленный аналог строки в таблице. В итоге бизнес-логику на этих фреймворках 95% пишут прямо в контроллере, еще 5% делают тоже самое в каких-нибудь сервисах. В итоге получается transaction script через active record. Какое извращение ![]() Они не понимают зачем. Они так делают, только потому что так написано в документации по ларавель. |
Цитата |
Активные записи (Active Records) составляют особую разновидность DTO. Они тоже представляют собой структуры данных с открытыми переменными (или пе- ременными с bean-доступом), но обычно в них присутствуют навигационные ме- тоды — такие, как save или find. Активные записи чаще всего являются результа- тами прямого преобразования таблиц баз данных или других источников данных. К сожалению, разработчики часто пытаются интерпретировать такие структуры данных, как объекты, и включают в них методы, реализующие бизнес-логику. Однако такой подход нежелателен, так как он создает гибрид между структурой данных и объектом. |
Цитата (Michael @ 23.03.2018 - 08:24) |
И вот некоторые пытаются AR как то по другому, по солид-ному, использовать, понимая ее например как только строчку таблицы. Т.е. не только функционал форм и валидации выкинуть, а любую логику. |
Цитата (twin @ 23.03.2018 - 10:30) | ||
Это называется "анемичная модель". Кстати, далеко не всеми принимается за антипаттерн. Многие наоборот считают что это, и только это верное направление. Вот и дядяБоб оказывается их почитателем. ![]() |
Цитата (Michael @ 23.03.2018 - 08:33) |
Да в таком использовании она даже и моделью не является, а просто какой то сервисный объект на инфраструктурном уровне, позволяющий не писать sql код. |
Цитата (Michael @ 23.03.2018 - 12:24) |
В таких фреймворках как Yii (c рельсовой архитектурой), традиционно AR объекты рассматриваются как основная часть M в MVC, и поэтому AR классы содержат все от M и становятся сильно жирными. Многие ооп-шники считают что это все неправильное программирование, не ооп, не солид. |
$users = User::find()->where(['like', 'login', '%Karl%'])
->andWhere(['in', 'id', [2, 4, 6]])
->all();
['username', 'isnotnull']
['password', 'equal', 'guest'],
['username', 'isnull']
[ 'id', 'in', [2, 4, 6]]
Цитата (chee @ 24.03.2018 - 01:26) |
я всякое дерьмо видел, но это дерьмо, самое дерьмовое дерьмо из всех дермищь. Это не только выглядит как очередная магическая хрень, но и имеет непредсказуемое API |
assertGreaterThan(mixed $expected, mixed $actual[, string $message = ''])
Цитата (chee @ 23.03.2018 - 23:26) |
Чем такой вариант не устраивает, он же очевиден |
Цитата (Michael @ 24.03.2018 - 05:25) |
Ну там смысл что идет оператор, а за ним уже операнды, которых может, в общем случае, быть >2 , например для 'and'. Для унификации. |
Цитата (Santehnick @ 23.03.2018 - 18:45) |
Я когда писал на yii делал из AR полноценные доменные объекты. И это верно если хочется готовить ООП на yii, а не процедурную лапшу. |
Цитата (Santehnick @ 29.03.2018 - 01:10) |
он будет искать архитектурные решения применительно к PHP. Не найдет. Тем более на русском. Вакуум. |
Цитата (Santehnick @ 24.03.2018 - 15:13) |
у Вернона в Implementing domain driven design. От AR осталось только умение объектов самосохраняться. |