Константа UID_BASE58 класса Requirement
Константа UID_BASE58 класса Requirement содержит регулярное выражение, которое проверяет, что значение параметра маршрута является идентификатором в формате Base58. Такой формат используется, например, в криптовалютных адресах и в некоторых системах генерации уникальных идентификаторов. Константу передают в параметр requirements атрибута Route или в метод setRequirements.
Синтаксис
Requirement::UID_BASE58
Пример
Давайте создадим маршрут, который принимает идентификатор в формате Base58:
<?php
namespace AppController;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationResponse;
use SymfonyComponentRoutingAttributeRoute;
use SymfonyComponentRoutingRequirement;
class ArticleController extends AbstractController
{
#[Route('/item/{id}', name: 'article_item', requirements: ['id' => Requirement::UID_BASE58])]
public function item(string $id): Response
{
return new Response('ID: ' . $id);
}
}
?>
Результат выполнения кода для адреса /item/2b1oJxYz:
"ID: 2b1oJxYz"
Если же обратиться по адресу /item/0OIl, содержащему символы 0, O, I и l, которые не входят в алфавит Base58, Symfony вернёт ошибку 404.
Пример
Давайте выведем само регулярное выражение, которое хранится в константе:
<?php
use SymfonyComponentRoutingRequirement;
echo Requirement::UID_BASE58;
?>
Результат выполнения кода:
"[1-9A-HJ-NP-Za-km-z]+"
Смотрите также
-
класс
Requirement,
который содержит набор готовых регулярных выражений для маршрутов -
константа
UID_BASE32,
которая задаёт проверку идентификаторов в формате Base32 -
константа
UID_RFC4122,
которая задаёт проверку идентификаторов в формате RFC 4122 -
параметр
requirements,
который задаёт требования к параметрам маршрута