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

Метод getPathInfo

Метод getPathInfo класса Request возвращает информационную часть пути запроса. Это часть URL, которая идёт после базового пути скрипта и не включает строку запроса. Метод не принимает параметров и возвращает строку. Он часто используется для анализа текущего адреса внутри контроллера или слушателя событий.

Синтаксис

public function getPathInfo(): string

Пример

Давайте получим путь запроса внутри контроллера и вернём его в ответе:

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

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

/article/info

Пример

Давайте сравним getPathInfo с другими методами запроса и выведем разницу:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; class ArticleController extends AbstractController { #[Route('/article/show', name: 'article_show')] public function show(Request $request): Response { $pathInfo = $request->getPathInfo(); $requestUri = $request->getRequestUri(); $queryString = $request->getQueryString(); $res = [ 'pathInfo' => $pathInfo, 'requestUri' => $requestUri, 'queryString' => $queryString, ]; return new Response(json_encode($res)); } } ?>

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

{"pathInfo":"/article/show","requestUri":"/article/show?page=2","queryString":"page=2"}

Как видно из результата, getPathInfo возвращает только путь без строки запроса, тогда как getRequestUri содержит её.

Пример

Давайте используем getPathInfo в слушателе событий для логирования пути запроса:

<?php namespace App\EventListener; use Symfony\Component\HttpKernel\Event\RequestEvent; class RequestListener { public function onKernelRequest(RequestEvent $event): void { $request = $event->getRequest(); $pathInfo = $request->getPathInfo(); if ($pathInfo === '/article/info') { // do something for this path } } } ?>

В этом примере мы проверяем, что текущий путь равен '/article/info', и выполняем нужное действие.

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

  • класс Request,
    который представляет HTTP-запрос
  • метод getRequestUri,
    который возвращает URI запроса вместе со строкой запроса
  • метод getBaseUrl,
    который возвращает базовый URL скрипта
  • метод getQueryString,
    который возвращает строку запроса
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить