А нафига??? Месье любитель писать тонны однотипного кода? Я понимаю что для некоторых случаев нужны прямые запросы, но всетаки в более половины случаев (а иногда и в более 90%) для получения данных, необходимых для модели достаточно простого вызова метода из репозитория/датамеппера/тейблгейтвея."все прямыми запросами (или через квери билдер не принципиально) " - получили некий array...
А нафига?
это просто view, представление одного из срезов - такая задача.Месье любитель писать тонны однотипного кода?
при чем здесь добавить в друзья?представь команду "Добавить в друзья"
DataMapper можно использовать, но какой-то односторонний, другой, не тот, который работает с моделью для записи. Или вот AutoMapper, как тут упоминалось уже.Для модели чтения как получать данные из базы для создания модели? Писать все прямыми запросами (или через квери билдер не принципиально) или использовать готовые методы data mapper-а (не обязательно один метод и не обязательно одного дата меппера)?
Да вопрос даже не в наборе свойств. Там могут быть очень похожие свойства, просто методы в принципе разные, семантика разная. А так часто бывает, что для чтения тоже одна модель, просто потому что лень там их как-то дробить.$userMapper->load($id); тоже написан под конкретную view там нет к примеру статус="заблокирован". конечно можно
а дальше, так как вся view у нас это json_serialize нужно конечно за(unset)ить ненужноеПри том что та же доктрина без дополнительных плясок с бубном вытащит нам еще и города с языками.
Ну блииин. Я именно же это и написал выше! Датамеппер заточенный под чтение для извлечения данных, на базе которого и генерится ридмодель. Рид модель вообще ничего не знает о базе и откуда эти данные пришли - максимум зависимость от датамеппера в фабрике или фабричных методах!DataMapper можно использовать, но какой-то односторонний, другой, не тот, который работает с моделью для записи. Или вот AutoMapper, как тут упоминалось уже.
Если мы четко себе представляем архитектуру, то уж решить вопрос DRY - дело техники, для этого все есть (квери-билдеры, автомапперы и т.д.), это настолько очевидно, что неинтересно обсуждать.Почему костыльно, потому что писать 100500 однотипных запросов, в которых легко допустить ошибку и нет нормального автокомплита, это костыль, который размазывается равномерно по всему коду.
но если бы было не интересно обсуждать, то и вопросов у @Фанат - а не возникло бы.это настолько очевидно, что неинтересно обсуждать.
там ( фио, фото, статус пользователя, количество друзей ( тут вообще интересно, это еще особая модель типа sql-agregate) и тд) я языки на которых пользователь говорит не трогаю. Этот обьект профиля, который вернул нам $userMapper->load($id); который рид-модель Где будешь использовать еще?Месье любитель писать тонны однотипного кода?
В отличие от внутренностей write-моделей, read-модели в подавляющем большинстве случаев "плоские" (или коллекция "плоских").лично у меня вопрос, как с наименьшим количеством костылей получить данные для рид модели (данные а не саму модель - она вообще ничего не знает об источнике данных)