корректная ли архитектура проекта
-
- Сообщения: 423
- Зарегистрирован: 2012.12.10, 14:19
- Откуда: Россия
корректная ли архитектура проекта
Всем привет, проектирую сервис на Yii2 backend часть, хотел уточнить у сообщества на верном ли пути я нахожусь.
1) Клиент передает ajax запрос в контроллер Yii2
2) Контроллер проверяет корректность введенных данных
3) Контроллер передает полученные данные в модель
4) Модель подключает компонент для работы с внешним сервисом и передает в него данные
5) Компонент выполняет один запрос, полученный результат передает во второй запрос, затем результат возвращает в модель
6) Модель формирует ответ и передает его в контроллер
7) Контроллер передает ответ модели во view
Что скажите?
1) Клиент передает ajax запрос в контроллер Yii2
2) Контроллер проверяет корректность введенных данных
3) Контроллер передает полученные данные в модель
4) Модель подключает компонент для работы с внешним сервисом и передает в него данные
5) Компонент выполняет один запрос, полученный результат передает во второй запрос, затем результат возвращает в модель
6) Модель формирует ответ и передает его в контроллер
7) Контроллер передает ответ модели во view
Что скажите?
Re: корректная ли архитектура проекта
Пункт 2. Все-таки не контроллер должен валидировать, а модель. Ну, это в теории
-
- Сообщения: 423
- Зарегистрирован: 2012.12.10, 14:19
- Откуда: Россия
Re: корректная ли архитектура проекта
Получается controller в таком случае должен только передавать данные в model и во view.
Не понятно тогда зачем он вообще нужен?
Не понятно тогда зачем он вообще нужен?
Re: корректная ли архитектура проекта
для объединения model и view это связующее звено
-
- Сообщения: 423
- Зарегистрирован: 2012.12.10, 14:19
- Откуда: Россия
Re: корректная ли архитектура проекта
Понятно, а какая вообще обычно работа делается в контроллере, кроме передачи.
Re: корректная ли архитектура проекта
тут на самом деле у каждого свой подход. иногда сам "грешу" толстыми контроллерами.
Несколько ссылочек почитать:
http://rmcreative.ru/blog/post/tonkie-i-tolstye-modeli
http://habrahabr.ru/post/175465/
http://www.yiiframework.com/forum/index ... ontroller/
Вообще если гуглить по ключевым словам "толстая модель", "тонкий контроллер", "fat model" и тд информации тонны
Несколько ссылочек почитать:
http://rmcreative.ru/blog/post/tonkie-i-tolstye-modeli
http://habrahabr.ru/post/175465/
http://www.yiiframework.com/forum/index ... ontroller/
Вообще если гуглить по ключевым словам "толстая модель", "тонкий контроллер", "fat model" и тд информации тонны
-
- Сообщения: 423
- Зарегистрирован: 2012.12.10, 14:19
- Откуда: Россия
-
- Сообщения: 423
- Зарегистрирован: 2012.12.10, 14:19
- Откуда: Россия
Re: корректная ли архитектура проекта
Где бы Вы сделали проверку, input, который пришел с view, пустой он или нет, в model или controller?
Re: корректная ли архитектура проекта
или фильтром или DynamicModel в контроллере, если этот input встречается 1-2 раза и только в 1 месте проекта
-
- Сообщения: 423
- Зарегистрирован: 2012.12.10, 14:19
- Откуда: Россия
Re: корректная ли архитектура проекта
А корректно будет, если скажем модель понимает, что с данными что-то не так, и вместо передачи в контроллер ошибки, кидает исключение из модели, формат его json, работа с видом только через json. View = MVC (Angular)
Или лучше все таки стараться так не делать?
Или лучше все таки стараться так не делать?
Re: корректная ли архитектура проекта
не очень, лучше пусть errorHandler смотрит AcceptEncoding и в зависимости от этого через ContentNogotiator разруливает формат
-
- Сообщения: 423
- Зарегистрирован: 2012.12.10, 14:19
- Откуда: Россия
Re: корректная ли архитектура проекта
А можно какой-то примерчик, может есть, к меня пока еще в этом еще нет большого опыта.
-
- Сообщения: 423
- Зарегистрирован: 2012.12.10, 14:19
- Откуда: Россия
Re: корректная ли архитектура проекта
Не, он тут не нужен, тут только Json будет, по этому смысла использовать contentNegotiator нет. Единственный вопрос, как переопределить errorHandler так, что бы можно было настроить другой тип и формат ответа?
Re: корректная ли архитектура проекта
думаю переопределить вот это https://github.com/yiisoft/yii2/blob/ma ... r.php#L194