Логика MVC — где именно обрабатывать GET параметры и как передавать? Разбираюсь с ООП, кое в чём сложно. Например сейчас не совсем ясно, где именно делать получение GET данных
1. Есть единая точка входа - index.php
2. bootstap.php - подключается в - index.php
3. Класс Router.php - подключается в - bootstap.php, как я понимаю, роутер, это уже часть контроллера. В нём парсится URI и в зависимости от параметров подключается определённый контроллер и запускается нужный action
4. Сам контроллер, их много и они разные. Например сейчас нужно обработать ajax запрос на поиск названия города - contr_ajax.class.
5. Модель "городов", подключается в контроллере ajax запросов
-- У всех контроллеров типа contr_xxxxxx.class есть один предок \core\Controller.class - но я его сейчас никак не использую
Вопрос состоит в "зависимости" классов от глобальных/внешних данных. Сначала я получал GET в самом классе "ajax запросов" contr_ajax.class - в нужном action, при этом конструктор класса простой и без параметров __construct()
Сейчас стал сомневаться, правильно ли это? Возможно это нужно делать уровнем выше, например в роутере или общем для всех контроллере (\core\Controller.class)? Помогите разобраться пожалуйста.

21 Авг 2019 в 07:09
196 +1
0
Ответы
1

В MVC архитектуре логика обработки GET параметров обычно распределяется следующим образом:

GET параметры обычно обрабатываются в контроллере, который вызывается из роутера в зависимости от URI. Контроллер может получать GET параметры непосредственно из запроса или через специальные методы (например, методы объекта запроса).

Если GET параметры необходимы для выполнения логики конкретного действия (action) контроллера, то их можно получать и обрабатывать внутри этого действия. Не обязательно передавать GET параметры в конструктор контроллера, особенно если это необходимо только для одного действия.

Если GET параметры нужны для большинства или всех действий контроллера, то их можно получать в конструкторе контроллера или передавать в виде параметров методов. В данном случае удобно использовать dependency injection для передачи объекта запроса или других внешних зависимостей.

Класс Router обычно занимается только маршрутизацией (определением контроллера и действия), а обработка GET параметров и другая логика должны быть вынесены в соответствующие контроллеры.

Таким образом, рекомендуется обрабатывать GET параметры в контроллерах на уровне действий, если они необходимы только для конкретного действия. Если GET параметры нужны для всех действий контроллера, их можно получать в конструкторе контроллера или через dependency injection. Главное, чтобы логика обработки GET параметров была логично распределена и не нарушала принципы MVC архитектуры.

20 Апр в 13:06
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 92 548 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир