@@ -649,6 +649,51 @@ URL Route Parameters
649649 contains a collection of commonly used regular-expression constants such as
650650 digits, dates and UUIDs which can be used as route parameter requirements.
651651
652+ .. configuration-block ::
653+
654+ .. code-block :: php-attributes
655+
656+ // src/Controller/BlogController.php
657+ namespace App\Controller;
658+
659+ use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
660+ use Symfony\Component\HttpFoundation\Response;
661+ use Symfony\Component\Routing\Attribute\Route;
662+ use Symfony\Component\Routing\Requirement\Requirement;
663+
664+ class BlogController extends AbstractController
665+ {
666+ #[Route('/blog/{page}', name: 'blog_list', requirements: ['page' => Requirement::DIGITS])]
667+ public function list(int $page): Response
668+ {
669+ // ...
670+ }
671+ }
672+
673+ .. code-block :: yaml
674+
675+ # config/routes.yaml
676+ blog_list :
677+ path : /blog/{page}
678+ controller : App\Controller\BlogController::list
679+ requirements :
680+ page : !php/const Symfony\Component\Routing\Requirement\Requirement::DIGITS
681+
682+ .. code-block :: php
683+
684+ // config/routes.php
685+ use App\Controller\BlogController;
686+ use Symfony\Component\Routing\Loader\Configurator\RoutingConfigurator;
687+ use Symfony\Component\Routing\Requirement\Requirement;
688+
689+ return static function (RoutingConfigurator $routes): void {
690+ $routes->add('blog_list', '/blog/{page}')
691+ ->controller([BlogController::class, 'list'])
692+ ->requirements(['page' => Requirement::DIGITS])
693+ ;
694+ // ...
695+ };
696+
652697 .. tip ::
653698
654699 Route requirements (and route paths too) can include
@@ -2327,7 +2372,7 @@ the :class:`Symfony\\Component\\Routing\\Generator\\UrlGeneratorInterface` class
23272372 class SomeService
23282373 {
23292374 public function __construct(
2330- private UrlGeneratorInterface $router ,
2375+ private UrlGeneratorInterface $urlGenerator ,
23312376 ) {
23322377 }
23332378
@@ -2336,20 +2381,20 @@ the :class:`Symfony\\Component\\Routing\\Generator\\UrlGeneratorInterface` class
23362381 // ...
23372382
23382383 // generate a URL with no route arguments
2339- $signUpPage = $this->router ->generate('sign_up');
2384+ $signUpPage = $this->urlGenerator ->generate('sign_up');
23402385
23412386 // generate a URL with route arguments
2342- $userProfilePage = $this->router ->generate('user_profile', [
2387+ $userProfilePage = $this->urlGenerator ->generate('user_profile', [
23432388 'username' => $user->getUserIdentifier(),
23442389 ]);
23452390
23462391 // generated URLs are "absolute paths" by default. Pass a third optional
23472392 // argument to generate different URLs (e.g. an "absolute URL")
2348- $signUpPage = $this->router ->generate('sign_up', [], UrlGeneratorInterface::ABSOLUTE_URL);
2393+ $signUpPage = $this->urlGenerator ->generate('sign_up', [], UrlGeneratorInterface::ABSOLUTE_URL);
23492394
23502395 // when a route is localized, Symfony uses by default the current request locale
23512396 // pass a different '_locale' value if you want to set the locale explicitly
2352- $signUpPageInDutch = $this->router ->generate('sign_up', ['_locale' => 'nl']);
2397+ $signUpPageInDutch = $this->urlGenerator ->generate('sign_up', ['_locale' => 'nl']);
23532398 }
23542399 }
23552400
0 commit comments