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

Метод isMethodIdempotent

Метод isMethodIdempotent класса Request возвращает true, если текущий HTTP-метод является идемпотентным, и false в противном случае. Идемпотентными считаются методы GET, HEAD, PUT и DELETE - их повторное выполнение не изменяет состояние сервера. Метод не принимает параметров и опирается на значение, возвращаемое методом getMethod.

Синтаксис

public function isMethodIdempotent(): bool

Пример

Давайте проверим идемпотентность для GET-запроса:

<?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 RequestController extends AbstractController { #[Route('/request/idempotent', name: 'request_idempotent')] public function idempotent(Request $request): Response { $res = $request->isMethodIdempotent(); return new Response(var_export($res, true)); } } ?>

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

true

Пример

Давайте проверим идемпотентность для POST-запроса:

<?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 RequestController extends AbstractController { #[Route('/request/idempotent', name: 'request_idempotent')] public function idempotent(Request $request): Response { $res = $request->isMethodIdempotent(); return new Response(var_export($res, true)); } } ?>

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

false

Пример

Давайте выведем результат для нескольких методов подряд:

<?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 RequestController extends AbstractController { #[Route('/request/idempotent-list', name: 'request_idempotent_list')] public function idempotentList(Request $request): Response { $methods = ['GET', 'POST', 'PUT', 'DELETE', 'PATCH']; $res = []; foreach ($methods as $method) { $subRequest = Request::create('/', $method); $res[$method] = $subRequest->isMethodIdempotent(); } return new Response(var_export($res, true)); } } ?>

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

[ 'GET' => true, 'POST' => false, 'PUT' => true, 'DELETE' => true, 'PATCH' => false, ]

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

  • класс Request,
    который представляет HTTP-запрос
  • метод getMethod,
    который возвращает HTTP-метод запроса
  • метод isMethod,
    который проверяет соответствие HTTP-метода
  • метод isMethodCacheable,
    который проверяет кэшируемость HTTP-метода
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить