Константа UID_RFC4122
Константа UID_RFC4122 класса Requirement содержит строку регулярного выражения, которая соответствует UUID в каноническом формате RFC 4122. Она используется в параметре requirements атрибута Route, чтобы ограничить значение параметра маршрута только корректными UUID. Это удобно, когда в URL передаётся идентификатор сущности, хранящейся в виде UUID.
Синтаксис
Requirement::UID_RFC4122
Пример
Давайте создадим маршрут, который принимает UUID в формате RFC 4122 и возвращает его значение:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;
use Symfony\Component\Routing\Requirement\Requirement;
class ArticleController extends AbstractController
{
#[Route('/article/{id}', name: 'article_show', requirements: ['id' => Requirement::UID_RFC4122])]
public function show(string $id): Response
{
return new Response($id);
}
}
?>
Результат выполнения кода для адреса /article/123e4567-e89b-12d3-a456-426614174000:
"123e4567-e89b-12d3-a456-426614174000"
Пример
Давайте убедимся, что при неверном UUID маршрут не будет найден и Symfony вернёт ошибку 404:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;
use Symfony\Component\Routing\Requirement\Requirement;
class ArticleController extends AbstractController
{
#[Route('/article/{id}', name: 'article_show', requirements: ['id' => Requirement::UID_RFC4122])]
public function show(string $id): Response
{
return new Response($id);
}
}
?>
Результат выполнения кода для адреса /article/abcde:
"No route found for GET /article/abcde"
Смотрите также
-
класс
Requirement,
который содержит набор готовых регулярных выражений -
константа
UUID,
которая проверяет UUID в любом формате -
параметр
requirements,
который задаёт требования к параметрам маршрута -
атрибут
Route,
который вешает метод контроллера на URL