Найдено 10 результатов

nexus
2018.06.18, 09:33
Форум: Общие вопросы (Yii 2.x)
Тема: SaveRelationsBehavior
Ответы: 7
Просмотры: 2294

Re: SaveRelationsBehavior

Спасибо, именно так и сделал. А не подскажите еще один вопрос, нужно уметь переносить элементы с одной страницы на другую, я сделал в сервисе примерно такой метод: $items = $project->getItemsList(); $pages = []; foreach ($sortingForm->sortOrder as $pageId => $itemIds) { $page = $project->findPage($p...
nexus
2018.05.28, 13:37
Форум: Общие вопросы (Yii 2.x)
Тема: SaveRelationsBehavior
Ответы: 7
Просмотры: 2294

Re: SaveRelationsBehavior

Project - это агрегат и все управление идет через него. То что я скинул это очень упрощенный вариант.
nexus
2018.05.28, 12:16
Форум: Общие вопросы (Yii 2.x)
Тема: SaveRelationsBehavior
Ответы: 7
Просмотры: 2294

Re: SaveRelationsBehavior

Я не работал с этим поведением, но скажите: а что значит "у Page не срабатывает метод save()"? Обычно save возвращает булево значение: true || false В случае если это false - значит есть ошибки, которые надо исправить М.б. там что-то пошло не так, и поэтому не сохраняет? + у AR есть метод...
nexus
2018.05.28, 10:14
Форум: Общие вопросы (Yii 2.x)
Тема: SaveRelationsBehavior
Ответы: 7
Просмотры: 2294

SaveRelationsBehavior

Всем привет, подскажите один момент. У меня есть класс Project у которого есть hasMany связь с Page class Project extends ActiveRecord { public function addPage(Page $page) { $pages = $this->pages; $pages[] = $page; $this->pages = $pages; } public function updatePage(Page $newPage) { $pages = $this-...
nexus
2017.03.25, 11:54
Форум: Архитектура, дизайн, ООП
Тема: Слоистая архитектура на основе сервисов
Ответы: 17
Просмотры: 6534

Re: Слоистая архитектура на основе сервисов

Я обычно использую упрощенный вариант того, что писал ElisDN public function actionCreate() { $form = new CreateForm(); if ($form->load(Yii::$app->request->post())) { try { SomeService::createFromCreateForm($form); } catch (\LogicException $e) { // обработка по желанию } } } class SomeService { pub...
nexus
2017.03.25, 00:10
Форум: Архитектура, дизайн, ООП
Тема: Слоистая архитектура на основе сервисов
Ответы: 17
Просмотры: 6534

Re: Слоистая архитектура на основе сервисов

Хотелось бы минимизировать дублирование свойст в форме, dto и сущности. Получается, чтобы добавить одно свойство нужно будет добавлять его в кучу мест. Как вы с этим боретесь? Используете магические методы?
nexus
2017.03.24, 13:08
Форум: Архитектура, дизайн, ООП
Тема: Слоистая архитектура на основе сервисов
Ответы: 17
Просмотры: 6534

Re: Слоистая архитектура на основе сервисов

ElisDN писал(а): 2017.03.24, 12:48 А у Вас поля в БД с полями в форме совпадают?
Если рассматривать вариант, когда поля совпадают, то можно использовать?
nexus
2017.03.24, 10:45
Форум: Архитектура, дизайн, ООП
Тема: Слоистая архитектура на основе сервисов
Ответы: 17
Просмотры: 6534

Re: Слоистая архитектура на основе сервисов

Спасибо за ответ. Еще такой вопрос, для сохранения моего агрегата нужно делать какой-то трансформер, который будет приводить агрегат в плоскую форму, а также для создания агрегата при извлечении из базы? Получается при редактировании для установки первоначальных данных для формы нужно проделывать та...
nexus
2017.03.23, 23:26
Форум: Архитектура, дизайн, ООП
Тема: Слоистая архитектура на основе сервисов
Ответы: 17
Просмотры: 6534

Re: Слоистая архитектура на основе сервисов

А в сервис должны приходить уже валидные данные или валидацию нужно делать в самом сервисе? Или можно базовую валидацию делать в контроллере формой, а низкоуровневую валидацию уже в самом сервисе? Так как dto используется для переноса данных между слоями и содержит гетеры и сетеры, можно ли использо...
nexus
2017.03.23, 17:23
Форум: Архитектура, дизайн, ООП
Тема: Слоистая архитектура на основе сервисов
Ответы: 17
Просмотры: 6534

Слоистая архитектура на основе сервисов

Всем привет. Есть проект на yii1, где куча лапша кода. Решил перевести его на yii2 и сделать это максимально правильно с точки зрения архитектуры. Почитав это ветку на форуме, решил делать слоистую архитектуру на основе сервисов, но опыта особого нет в этом. Принял решение делать на каждое действие ...