PHP: Разработка микрофреймворка

Теория: Параметры

Параметры запроса

Часть данных в HTTP-запросе передается не через путь, а через строку запроса. Она идет после знака ? в URL.

Пример:

/users?page=3&sort=name

Здесь page=3 и sort=name - это параметры запроса (query params).

Query params и роутинг

В современном подходе query params не являются частью роутинга. Роутер выбирает обработчик по пути, а параметры просто передаются внутрь этого обработчика.

Например, маршрут /users может быть один, а параметры в запросе разные:

  • ?page=1.
  • ?page=2.
  • ?page=2&sort=name.

Это удобно для пагинации, фильтров и сортировки.

Как получить параметры в PHP

В PHP параметры строки запроса доступны через суперглобальный массив $_GET.

<?php

$app->get('/', function (array $params): string {
    return json_encode($params);
});

$app->post('/', function (array $params): string {
    return json_encode($params);
});

В этом примере роутер передает в $params содержимое $_GET.

Важно: значения приходят строками. PHP не приводит типы автоматически в этом месте.

Почему это не get-параметры

Название $_GET часто сбивает с толку. Параметры строки запроса не зависят от HTTP-метода.

Их можно передать и при GET, и при POST:

curl "http://localhost:8080/?page=3"
curl -X POST "http://localhost:8080/?page=5"

В обоих случаях page окажется в $_GET.

Массив $_REQUEST

В PHP есть еще один суперглобальный массив - $_REQUEST. Он объединяет данные из $_GET, $_POST и $_COOKIE.

Технически это удобно, но в приложениях его обычно избегают.

Причины:

  • Становится сложнее понимать источник данных.
  • Растет риск ошибок в валидации и обработке.
  • Повышается вероятность проблем с безопасностью.

Поэтому в реальных проектах чаще работают с $_GET, $_POST и $_COOKIE отдельно или используют интерфейсы фреймворка (Request).

Итог

На этом этапе важно зафиксировать три правила:

  • Query params идут в URL после ?.
  • Query params не участвуют в выборе маршрута.
  • Query params читаются через $_GET, независимо от HTTP-метода.

Рекомендуемые программы

Дальше

Завершено

0 / 11

+7 800 100 22 47

бесплатно по РФ

+7 495 085 21 62

бесплатно по Москве

108813 г. Москва, вн.тер.г. поселение Московский,
г. Московский, ул. Солнечная, д. 3А, стр. 1, помещ. 20Б/3
ОГРН 1217300010476
ИНН 7325174845