РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
214 of 1361 menu

Метод getCurrentRequest

Метод getCurrentRequest класса RequestStack возвращает объект Request, который находится на вершине стека запросов. В обычном HTTP-запросе это главный запрос приложения. Если запросы вложены друг в друга, метод вернёт последний добавленный запрос через push. Метод не принимает параметров и может вернуть null, если стек пуст.

Синтаксис

public function getCurrentRequest(): ?Request

Пример

Давайте получим текущий запрос в контроллере через сервис RequestStack:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\RequestStack; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; class ArticleController extends AbstractController { #[Route('/article', name: 'article_index')] public function index(RequestStack $requestStack): Response { $request = $requestStack->getCurrentRequest(); return new Response($request->getPathInfo()); } } ?>

Результат выполнения кода для адреса /article:

"/article"

Пример

Давайте проверим, что метод возвращает null, если стек запросов пуст:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\RequestStack; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; class ArticleController extends AbstractController { #[Route('/article/empty', name: 'article_empty')] public function empty(RequestStack $requestStack): Response { $requestStack->pop(); $request = $requestStack->getCurrentRequest(); if ($request === null) { return new Response('stack is empty'); } return new Response('stack is not empty'); } } ?>

Результат выполнения кода:

"stack is empty"

Пример

Давайте используем метод для получения заголовка User-Agent текущего запроса:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\RequestStack; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; class ArticleController extends AbstractController { #[Route('/article/agent', name: 'article_agent')] public function agent(RequestStack $requestStack): Response { $request = $requestStack->getCurrentRequest(); $agent = $request->headers->get('User-Agent'); return new Response($agent); } } ?>

Результат выполнения кода:

"Mozilla/5.0"

Смотрите также

  • класс RequestStack,
    который хранит стек HTTP-запросов
  • метод getMainRequest,
    который возвращает главный запрос приложения
  • метод push,
    который добавляет запрос в стек
  • метод pop,
    который извлекает последний запрос из стека
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить