Cобытие Model::EVENT_ON_LOAD

Уже исправленные репорты или принятые предложения
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Cобытие Model::EVENT_ON_LOAD

Сообщение zelenin »

ну в моем мире вот так:

Код: Выделить всё


public function actionNowayDto()
{
    $city = $this->cityAssembler->toDto($cityRepo->find(123));
    $models = $this->userCollectionAssembler->toDto($userRepo->finAll()); 
    $permissions = ...
        
    return $this->render('nowayDto', [
        'city' => $city,
        'users' => $models,
        'permissions' => $permissions
    ]);
}
 
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: Cобытие Model::EVENT_ON_LOAD

Сообщение samdark »

В идеальном или в реальном?
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Cобытие Model::EVENT_ON_LOAD

Сообщение zelenin »

Sam Dark писал(а):В идеальном или в реальном?
в реальном
R3D3
Сообщения: 352
Зарегистрирован: 2010.04.11, 14:52

Re: Cобытие Model::EVENT_ON_LOAD

Сообщение R3D3 »

zelenin писал(а):
Sam Dark писал(а):В идеальном или в реальном?
в реальном
+ класс CityAssembler
+ класс CityRepo
+ класс UserCollectionAssembler
+ класс UserRepo
+ класс PermissionCollectionAssembler
+ класс PermissionRepo
+ классы DTO
+ в каждом ассемблере прописана логика про наполнению Dto объекта

+ в экшене получение репозиториев как минимум не прописано

+ механизм привязывания всех ассемблеров в контроллер чтобы можно было получать их через $this->

Очень "кратко" и "немногословно".
Yii Jabber Conference: yii@conference.jabber.ru
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Cобытие Model::EVENT_ON_LOAD

Сообщение zelenin »

R3D3 писал(а):
zelenin писал(а):
Sam Dark писал(а):В идеальном или в реальном?
в реальном
+ класс CityAssembler
+ класс CityRepo
+ класс UserCollectionAssembler
+ класс UserRepo
+ класс PermissionCollectionAssembler
+ класс PermissionRepo
+ классы DTO
+ в каждом ассемблере прописана логика про наполнению Dto объекта

+ в экшене получение репозиториев как минимум не прописано

+ механизм привязывания всех ассемблеров в контроллер чтобы можно было получать их через $this->

Очень "кратко" и "немногословно".
да, вот представь есть такие приложения за пределами этого форума.
собственно щас вопрос опять скатится к обсуждению нужно ли думать об архитектуре, если я делаю приложения на yii.
R3D3
Сообщения: 352
Зарегистрирован: 2010.04.11, 14:52

Re: Cобытие Model::EVENT_ON_LOAD

Сообщение R3D3 »

zelenin писал(а): собственно щас вопрос опять скатится к обсуждению нужно ли думать об архитектуре, если я делаю приложения на yii.
Иногда отказаться от нагромождения классов-сущностей и посредников, и написать вместо этого простой хелпер - как раз и означает подумать об архитектуре.
Yii Jabber Conference: yii@conference.jabber.ru
Nerf
Сообщения: 780
Зарегистрирован: 2015.01.29, 00:37

Re: Cобытие Model::EVENT_ON_LOAD

Сообщение Nerf »

Иногда отказаться от нагромождения классов-сущностей и посредников, и написать вместо этого простой хелпер - как раз и означает подумать об архитектуре.
Резонно.

Как использование dto избавит от хелперов? Или вы предлагает для каждого способа форматирования делать новый ассемблер? Как это поддерживать? Как намеренное усложнение может улучшить архитектуру?

Мы сейчас говорим о передачи данных в представление. Если рассматривать в разрезе модулей, удаленных систем, то это другой вопрос.

UPD: Вы путает понятия. То, что вы подразумеваете под DTO, таковым не является. Судя по вашим ссылкам, вы тут про Value object или PO[A-Z]O. Тогда, написанное мной выше, не совсем актуально.
Последний раз редактировалось Nerf 2016.03.04, 17:05, всего редактировалось 1 раз.
Аватара пользователя
SiZE
Сообщения: 2813
Зарегистрирован: 2011.09.21, 12:39
Откуда: Perm
Контактная информация:

Re: Cобытие Model::EVENT_ON_LOAD

Сообщение SiZE »

zelenin писал(а):Вы часто 1000 моделей во вьюшку передаете?
Последний мой проект. Порядка 10 сущностей: новости, статьи, похожие сущности на статьи, комментарии, два типа объявлений. Плюс ко всему этому виджеты типа, последние Н записей или похожие записи или популярные и тп. Для всего отдельные модели и классы. А дата у всех должна быть одинаково отформатирована. Причем не просто вот формат даты строкой, а с HTML версткой. Первый раз я продублирую все это в прослойке.

А потом если заказчик попросит меня изменить стиль? Мне искать все вхождения? Как что-то не пропустить?

Или в прослойке использовать такой хелпер? Но тогда скажем новый программист может ничего об этом не знать и написать свою реализацию.
Ответить