Где хранить параметры get?

Тайм-менеджер на MVC, есть функция показа тасков за выбранный промежуток времени. Вопрос - куда сохранять значения начала и конца промежутка (передаются GETом от юзера), и соответственно, откуда их брать application controller'у (для передачи модели и формирования SQL запроса)?

Варианты:

1. Массив параметров во Front controller (singleton). То есть FC берет их из GET и записывает массивом в своё свойство, а модель вызывает синглтон и читает из его свойства.
2. Передавать Front controllerом при вызове запрашиваемого контроллера. Но здесь придётся ставить условные операторы, так как FC по сути вызывает метод, а значения параметров (начало и конец периода) могут не всегда присутствовать в запросе.
3. Есть спец синглтон ContextRegistry, в котором хранятся массивы get, post, files (доступны через get методы объекта - не знаю, правильно ли это) а также в котором хранится объект response для обмена данными между моделью и вью.

Какой вариант предпочтительнее? Может есть лучше?
  • Вопрос задан
  • 248 просмотров
Пригласить эксперта
Ответы на вопрос 2
Stalker_RED
@Stalker_RED
На практике встречаются все варианты. Мне более правильной (привычной?) кажется схема, когда существует синглетон-обертка типа $request->getParameter('param_name', 'dafault_value', 'filter/validation_rule')

И модель не должна что-то там читать из get-запросов, ей нужно передать параметры, имхо.

т.е. в контроллере что-то типа
$from = $request->getParameter('time_from', '00:00:00', 'filter_time');
$to = $request->getParameter('time_to', '23:59:59', 'filter_time');

$tasks = $tasks_model->getTasksByRange($from, $to);
Ответ написан
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
REST-API (AJAX) + $_SESSION
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы