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

Темы, не касающиеся фреймворка, но относящиеся к программированию в целом.
Ответить
shkarbatov
Сообщения: 423
Зарегистрирован: 2012.12.10, 14:19
Откуда: Россия

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

Сообщение shkarbatov »

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

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

Что скажите?
Аватара пользователя
anton44eg
Сообщения: 2716
Зарегистрирован: 2012.01.25, 13:37
Откуда: Киев

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

Сообщение anton44eg »

Пункт 2. Все-таки не контроллер должен валидировать, а модель. Ну, это в теории
shkarbatov
Сообщения: 423
Зарегистрирован: 2012.12.10, 14:19
Откуда: Россия

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

Сообщение shkarbatov »

Получается controller в таком случае должен только передавать данные в model и во view.
Не понятно тогда зачем он вообще нужен?
Аватара пользователя
anton44eg
Сообщения: 2716
Зарегистрирован: 2012.01.25, 13:37
Откуда: Киев

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

Сообщение anton44eg »

для объединения model и view :) это связующее звено
shkarbatov
Сообщения: 423
Зарегистрирован: 2012.12.10, 14:19
Откуда: Россия

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

Сообщение shkarbatov »

Понятно, а какая вообще обычно работа делается в контроллере, кроме передачи.
Аватара пользователя
anton44eg
Сообщения: 2716
Зарегистрирован: 2012.01.25, 13:37
Откуда: Киев

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

Сообщение anton44eg »

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

Вообще если гуглить по ключевым словам "толстая модель", "тонкий контроллер", "fat model" и тд информации тонны
shkarbatov
Сообщения: 423
Зарегистрирован: 2012.12.10, 14:19
Откуда: Россия

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

Сообщение shkarbatov »

Спасибо.
shkarbatov
Сообщения: 423
Зарегистрирован: 2012.12.10, 14:19
Откуда: Россия

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

Сообщение shkarbatov »

Где бы Вы сделали проверку, input, который пришел с view, пустой он или нет, в model или controller?
Аватара пользователя
anton44eg
Сообщения: 2716
Зарегистрирован: 2012.01.25, 13:37
Откуда: Киев

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

Сообщение anton44eg »

или фильтром или DynamicModel в контроллере, если этот input встречается 1-2 раза и только в 1 месте проекта
shkarbatov
Сообщения: 423
Зарегистрирован: 2012.12.10, 14:19
Откуда: Россия

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

Сообщение shkarbatov »

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

Или лучше все таки стараться так не делать?
Аватара пользователя
anton44eg
Сообщения: 2716
Зарегистрирован: 2012.01.25, 13:37
Откуда: Киев

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

Сообщение anton44eg »

не очень, лучше пусть errorHandler смотрит AcceptEncoding и в зависимости от этого через ContentNogotiator разруливает формат
shkarbatov
Сообщения: 423
Зарегистрирован: 2012.12.10, 14:19
Откуда: Россия

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

Сообщение shkarbatov »

А можно какой-то примерчик, может есть, к меня пока еще в этом еще нет большого опыта.
shkarbatov
Сообщения: 423
Зарегистрирован: 2012.12.10, 14:19
Откуда: Россия

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

Сообщение shkarbatov »

Не, он тут не нужен, тут только Json будет, по этому смысла использовать contentNegotiator нет. Единственный вопрос, как переопределить errorHandler так, что бы можно было настроить другой тип и формат ответа?
Аватара пользователя
anton44eg
Сообщения: 2716
Зарегистрирован: 2012.01.25, 13:37
Откуда: Киев

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

Сообщение anton44eg »

думаю переопределить вот это https://github.com/yiisoft/yii2/blob/ma ... r.php#L194
Ответить