PHP: Разработка микрофреймворка
Теория: Параметры
Параметры запроса
Часть данных в HTTP-запросе передается не через путь, а через строку запроса. Она идет после знака ? в URL.
Пример:
Здесь page=3 и sort=name - это параметры запроса (query params).
Query params и роутинг
В современном подходе query params не являются частью роутинга. Роутер выбирает обработчик по пути, а параметры просто передаются внутрь этого обработчика.
Например, маршрут /users может быть один, а параметры в запросе разные:
?page=1.?page=2.?page=2&sort=name.
Это удобно для пагинации, фильтров и сортировки.
Как получить параметры в PHP
В PHP параметры строки запроса доступны через суперглобальный массив $_GET.
В этом примере роутер передает в $params содержимое $_GET.
Важно: значения приходят строками. PHP не приводит типы автоматически в этом месте.
Почему это не get-параметры
Название $_GET часто сбивает с толку. Параметры строки запроса не зависят от HTTP-метода.
Их можно передать и при GET, и при POST:
В обоих случаях page окажется в $_GET.
Массив $_REQUEST
В PHP есть еще один суперглобальный массив - $_REQUEST. Он объединяет данные из $_GET, $_POST и $_COOKIE.
Технически это удобно, но в приложениях его обычно избегают.
Причины:
- Становится сложнее понимать источник данных.
- Растет риск ошибок в валидации и обработке.
- Повышается вероятность проблем с безопасностью.
Поэтому в реальных проектах чаще работают с $_GET, $_POST и $_COOKIE отдельно или используют интерфейсы фреймворка (Request).
Итог
На этом этапе важно зафиксировать три правила:
- Query params идут в URL после
?. - Query params не участвуют в выборе маршрута.
- Query params читаются через
$_GET, независимо от HTTP-метода.

