Параметр priority атрибута Route
Параметр priority атрибута Route
задаёт приоритет маршрута. Когда несколько
маршрутов совпадают с одним и тем же URL,
Symfony выбирает тот, у которого приоритет
выше. Чем больше число, тем выше приоритет.
По умолчанию приоритет равен 0.
Синтаксис
#[Route(path, name: name, priority: priority)]
Пример
Давайте создадим два маршрута с одинаковым путём, но с разными приоритетами:
<?php
namespace AppController;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationResponse;
use SymfonyComponentRoutingAttributeRoute;
class ArticleController extends AbstractController
{
#[Route('/article', name: 'article_low', priority: 1)]
public function low(): Response
{
return new Response('low priority');
}
#[Route('/article', name: 'article_high', priority: 10)]
public function high(): Response
{
return new Response('high priority');
}
}
?>
Результат выполнения кода для адреса /article:
high priority
Пример
Давайте создадим маршрут с динамическим параметром и более высоким приоритетом, чтобы он перекрывал статический маршрут:
<?php
namespace AppController;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationResponse;
use SymfonyComponentRoutingAttributeRoute;
class ArticleController extends AbstractController
{
#[Route('/user/list', name: 'user_list', priority: 1)]
public function list(): Response
{
return new Response('user list');
}
#[Route('/user/{name}', name: 'user_show', priority: 10)]
public function show(string $name): Response
{
return new Response('user ' . $name);
}
}
?>
Результат выполнения кода для адреса /user/list:
user list