Поиск…
Вступление
Класс запроса Symfony представляет собой объектно-ориентированное представление HTTP-запроса. Он содержит информацию, такую как URL, строку запроса, загруженные файлы, файлы cookie и другие заголовки, поступающие из браузера.
Синтаксис
- $ Request-> getPathInfo (); // возвращает запрашиваемый путь (локальная часть URL-адреса) (но без строки запроса). Т.е. при посещении https://example.com/foo/bar?key=value это будет содержать / foo / bar
- $ Request-> query-> Get ( 'ID'); // возвращает параметр строки запроса ($ _GET)
- $ request-> query-> get ('id', 1); // возвращает параметр строки запроса со значением по умолчанию
- $ Request-> request-> Get ( 'имя'); // возвращает переменную body запроса ($ _POST)
- $ Request-> files-> Get ( 'вложение'); // возвращает экземпляр UploadedFile, идентифицированный «вложением»,
- $ Request-> cookies-> Get ( 'PHPSESSID'); // возвращает значение cookie ($ _COOKIE)
- $ Request-> headers-> Get ( 'content_type'); // возвращает заголовок запроса HTTP
- $ Request-> getMethod (); // возвращает метод HTTP-запроса (GET, POST, PUT, DELETE и т. д.).
- $ Request-> getLanguages (); // возвращает массив языков, которые клиент принимает
Получение параметра строки запроса
Допустим, мы хотим создать разбитый список продуктов, где номер страницы передается как параметр строки запроса. Например, чтобы получить 3-ю страницу, вы переходите к:
http://example.com/products?page=3
Необработанный HTTP-запрос будет выглядеть примерно так:
GET /products?page=3 HTTP/1.1
Host: example.com
Accept: text/html
User-Agent: Mozilla/5.0 (Macintosh)
Чтобы получить номер страницы из объекта запроса, вы можете получить доступ к свойству query
:
$page = $request->query->get('page'); // 3
В случае параметра page
вы, вероятно, захотите передать значение по умолчанию, если параметр строки запроса не задан:
$page = $request->query->get('page', 1);
Это означает, что когда кто-то посещает http://example.com/products (обратите внимание на отсутствие строки запроса), переменная $page
будет содержать значение по умолчанию 1
.
Создание объекта запроса из глобальных переменных
PHP предоставляет ряд так называемых глобальных переменных, которые содержат информацию о HTTP-запросе, например $_POST
, $_GET
, $_FILES
, $_SESSION
и т. Д. Класс Request
содержит статический createFromGlobals()
для создания экземпляра запроса объект, основанный на этих переменных:
use Symfony\Component\HttpFoundation\Request;
$request = Request::createFromGlobals();
При использовании инфраструктуры Symfony вы не должны создавать экземпляр объекта запроса самостоятельно. Вместо этого вы должны использовать объект, app.php
при app.php
фреймворка в app.php
/ app_dev.php
. Например, по типу, намекающему на объект запроса в вашем контроллере .
Доступ к переменной POST
Чтобы получить содержимое формы, представленной method="post"
, используйте свойство post
:
$name = $request->request->get('name');
Доступ к содержимому файла cookie
$id = $request->cookies->get('PHPSESSID');
Это вернет значение cookie 'PHPSESSID', отправленное браузером.