Страница 1 из 1

корректная ли архитектура проекта

Добавлено: 2014.12.25, 15:36
shkarbatov
Всем привет, проектирую сервис на Yii2 backend часть, хотел уточнить у сообщества на верном ли пути я нахожусь.

1) Клиент передает ajax запрос в контроллер Yii2
2) Контроллер проверяет корректность введенных данных
3) Контроллер передает полученные данные в модель
4) Модель подключает компонент для работы с внешним сервисом и передает в него данные
5) Компонент выполняет один запрос, полученный результат передает во второй запрос, затем результат возвращает в модель
6) Модель формирует ответ и передает его в контроллер
7) Контроллер передает ответ модели во view

Что скажите?

Re: корректная ли архитектура проекта

Добавлено: 2014.12.25, 17:41
anton44eg
Пункт 2. Все-таки не контроллер должен валидировать, а модель. Ну, это в теории

Re: корректная ли архитектура проекта

Добавлено: 2014.12.25, 17:45
shkarbatov
Получается controller в таком случае должен только передавать данные в model и во view.
Не понятно тогда зачем он вообще нужен?

Re: корректная ли архитектура проекта

Добавлено: 2014.12.25, 17:56
anton44eg
для объединения model и view :) это связующее звено

Re: корректная ли архитектура проекта

Добавлено: 2014.12.25, 18:05
shkarbatov
Понятно, а какая вообще обычно работа делается в контроллере, кроме передачи.

Re: корректная ли архитектура проекта

Добавлено: 2014.12.25, 18:12
anton44eg
тут на самом деле у каждого свой подход. иногда сам "грешу" толстыми контроллерами.
Несколько ссылочек почитать:
http://rmcreative.ru/blog/post/tonkie-i-tolstye-modeli
http://habrahabr.ru/post/175465/
http://www.yiiframework.com/forum/index ... ontroller/

Вообще если гуглить по ключевым словам "толстая модель", "тонкий контроллер", "fat model" и тд информации тонны

Re: корректная ли архитектура проекта

Добавлено: 2014.12.25, 18:14
shkarbatov
Спасибо.

Re: корректная ли архитектура проекта

Добавлено: 2014.12.25, 18:19
shkarbatov
Где бы Вы сделали проверку, input, который пришел с view, пустой он или нет, в model или controller?

Re: корректная ли архитектура проекта

Добавлено: 2014.12.25, 18:39
anton44eg
или фильтром или DynamicModel в контроллере, если этот input встречается 1-2 раза и только в 1 месте проекта

Re: корректная ли архитектура проекта

Добавлено: 2014.12.25, 18:50
shkarbatov
А корректно будет, если скажем модель понимает, что с данными что-то не так, и вместо передачи в контроллер ошибки, кидает исключение из модели, формат его json, работа с видом только через json. View = MVC (Angular)

Или лучше все таки стараться так не делать?

Re: корректная ли архитектура проекта

Добавлено: 2014.12.25, 19:08
anton44eg
не очень, лучше пусть errorHandler смотрит AcceptEncoding и в зависимости от этого через ContentNogotiator разруливает формат

Re: корректная ли архитектура проекта

Добавлено: 2014.12.25, 19:10
shkarbatov
А можно какой-то примерчик, может есть, к меня пока еще в этом еще нет большого опыта.

Re: корректная ли архитектура проекта

Добавлено: 2014.12.25, 19:24
anton44eg

Re: корректная ли архитектура проекта

Добавлено: 2014.12.25, 21:19
shkarbatov
Не, он тут не нужен, тут только Json будет, по этому смысла использовать contentNegotiator нет. Единственный вопрос, как переопределить errorHandler так, что бы можно было настроить другой тип и формат ответа?

Re: корректная ли архитектура проекта

Добавлено: 2014.12.25, 22:25
anton44eg
думаю переопределить вот это https://github.com/yiisoft/yii2/blob/ma ... r.php#L194