HTTP-запросы
Класс Imhotep\Http\Request предоставляет удобный способ взаимодействия с текущим HTTP-запросом, включая получение данных пользователя, файлов, cookies и информации о запросе.
Получение экземпляра запроса
Для работы с текущим HTTP-запросом просто объявите тип Imhotep\Http\Request в методе контроллера. Imhotep автоматически внедрит текущий запрос:
use Imhotep\Http\Request;
class UserController
{
public function store(Request $request)
{
// Работаем с запросом
$method = $request->method();
}
}
PHP
Поддержка стандарта PSR-7
Imhotep также поддерживает интерфейс PSR-7, поэтому вы можете использовать его в качестве типа:
use Psr\Http\Message\ServerRequestInterface;
Route::get('/', function (ServerRequestInterface $request) {
// Работа с запросом через PSR-7
});
PHP
Информация о запросе
Метод запроса
Узнайте, каким методом был отправлен запрос:
// Получаем метод запроса
$method = $request->method(); // GET, POST, PUT и т.д.
// Проверяем метод
if ($request->isMethod('POST')) {
// Это POST-запрос
}
// Проверяем несколько методов
if ($request->isMethod('PUT', 'PATCH')) {
// Это PUT или PATCH запрос
}
PHP
Безопасное соединение (HTTPS)
Проверьте, использует ли запрос защищённое соединение:
if ($request->secure()) {
// Запрос через HTTPS
}
// Альтернативный вариант
if ($request->scheme() === 'https') {
// Также HTTPS
}
PHP
URL и путь запроса
Получите информацию о URL запроса:
// Пример запроса: https://example.com/user/profile?hidden=notifications
$root = $request->root(); // https://example.com
$host = $request->host(); // example.com
$port = $request->port(); // 80 или 443
$path = $request->path(); // /user/profile
$queryString = $request->queryString(); // hidden=notifications
$uri = $request->uri(); // /user/profile?hidden=notifications
PHP
Получение URL
Есть несколько способов получить URL запроса:
// Без query string
$url = $request->url();
// Результат: https://example.com/user/profile
// Добавить только заданные параметры
$url = $request->url(['section' => 'password']);
// Результат: https://example.com/user/profile?section=password
// С query string
$url = $request->fullUrl();
// Результат: https://example.com/user/profile?hidden=notifications
// Добавить параметры к query string
$url = $request->fullUrl(['from' => 'register']);
// Результат: https://example.com/user/profile?hidden=notifications&from=register
// Заменить параметры query string
$url = $request->fullUrl(['hidden' => 'none']);
// Результат: https://example.com/user/profile?hidden=none
// Добавить параметры и удалить старые из query string
$url = $request->fullUrl(['from' => 'register'], ['hidden']);
// Результат: https://example.com/user/profile?from=register
PHP
Что дальше?
Для более детальной информации о работе с различными частями запроса перейдите в соответствующие разделы:
- Заголовки запроса – работа с HTTP-заголовками
- Входные данные – получение и обработка данных от пользователя (включая JSON)
- Файлы – работа с загруженными файлами
- Cookies – работа с cookies