Метод preferSafeContent
Метод preferSafeContent класса Request сообщает фреймворку,
что при разборе тела запроса нужно отдать предпочтение безопасному формату.
Это особенно важно для запросов с типом содержимого, который может быть
интерпретирован неоднозначно, например для application/x-www-form-urlencoded
или multipart/form-data. Метод не принимает параметров и возвращает
текущий объект Request, что позволяет выстраивать цепочку вызовов.
Синтаксис
public function preferSafeContent(): static
Пример
Давайте включим безопасный разбор тела запроса и выведем содержимое:
<?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', name: 'article_index')]
public function index(Request $request): Response
{
$request->preferSafeContent();
return new Response($request->getContent());
}
}
?>
Результат выполнения кода для тела запроса 'abcde':
abcde
Пример
Давайте сравним поведение до и после вызова метода, получив параметр из запроса:
<?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('/user', name: 'article_user')]
public function user(Request $request): Response
{
$request->preferSafeContent();
$name = $request->request->get('name', 'user');
return new Response($name);
}
}
?>
Результат выполнения кода для параметра name со значением 'abcde':
abcde
Смотрите также
-
класс
Request,
который представляет HTTP-запрос -
метод
getContent,
который возвращает тело запроса -
метод
getPayload,
который возвращает разобранное тело запроса -
метод
getContentTypeFormat,
который возвращает формат типа содержимого