Метод isMethod
Метод isMethod принадлежит классу
Request и проверяет, равен ли
HTTP-метод текущего запроса заданной строке.
Первым параметром передаётся имя метода в
верхнем регистре, например 'GET',
'POST', 'PUT' или
'DELETE'. Метод возвращает
true, если метод запроса совпадает
с переданным, и false в противном
случае. Регистр переданного значения не важен,
так как внутри выполняется приведение к
верхнему регистру.
Синтаксис
public function isMethod(string $method): bool
Пример
Давайте проверим, является ли текущий запрос GET-запросом:
<?php
namespace AppController;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationRequest;
use SymfonyComponentHttpFoundationResponse;
use SymfonyComponentRoutingAttributeRoute;
class ArticleController extends AbstractController
{
#[Route('/article', name: 'article_index')]
public function index(Request $request): Response
{
if ($request->isMethod('GET')) {
return new Response('hello');
}
return new Response('other method');
}
}
?>
Результат выполнения кода для GET-запроса:
"hello"
Пример
Давайте проверим несколько методов сразу и вернём имя подходящего:
<?php
namespace AppController;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationRequest;
use SymfonyComponentHttpFoundationResponse;
use SymfonyComponentRoutingAttributeRoute;
class ArticleController extends AbstractController
{
#[Route('/article/save', name: 'article_save')]
public function save(Request $request): Response
{
if ($request->isMethod('POST')) {
return new Response('post request');
}
if ($request->isMethod('PUT')) {
return new Response('put request');
}
return new Response('unknown method');
}
}
?>
Результат выполнения кода для POST-запроса:
"post request"
Пример
Давайте используем метод внутри сервиса, получив объект запроса из стека:
<?php
namespace AppService;
use SymfonyComponentHttpFoundationRequestStack;
class RequestChecker
{
public function __construct(
private RequestStack $requestStack
) {
}
public function isDelete(): bool
{
$request = $this->requestStack->getCurrentRequest();
return $request->isMethod('DELETE');
}
}
?>
Результат выполнения кода для DELETE-запроса:
true
Смотрите также
-
класс
Request,
который представляет HTTP-запрос -
метод
getMethod,
который возвращает HTTP-метод запроса -
метод
getRealMethod,
который возвращает исходный HTTP-метод запроса -
метод
isMethodCacheable,
который проверяет, можно ли кешировать запрос