Skip to content

Commit 5ccc81e

Browse files
committed
docs(routing): Add Attribute code examples for alias in #[Route] attribute
1 parent 0b180d5 commit 5ccc81e

File tree

1 file changed

+62
-0
lines changed

1 file changed

+62
-0
lines changed

routing.rst

+62
Original file line numberDiff line numberDiff line change
@@ -1307,8 +1307,32 @@ Route Aliasing
13071307

13081308
Route alias allow you to have multiple name for the same route:
13091309

1310+
.. note::
1311+
1312+
In next examples, ``original_route_name`` was the default name of the route,
1313+
now it's ``new_route_name``, while ``original_route_name`` is still available
1314+
as an alias.
1315+
13101316
.. configuration-block::
13111317

1318+
.. code-block:: php-attributes
1319+
1320+
// src/Controller/DefaultController.php
1321+
namespace App\Controller;
1322+
1323+
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
1324+
use Symfony\Component\HttpFoundation\Response;
1325+
use Symfony\Component\Routing\Attribute\Route;
1326+
1327+
class DefaultController extends AbstractController
1328+
{
1329+
#[Route('/path', name: 'new_route_name', alias: ['alias', 'original_route_name'])]
1330+
public function action(): Response
1331+
{
1332+
// ...
1333+
}
1334+
}
1335+
13121336
.. code-block:: yaml
13131337
13141338
# config/routes.yaml
@@ -1349,6 +1373,44 @@ you decided not to maintain it anymore), you can deprecate its definition:
13491373

13501374
.. configuration-block::
13511375

1376+
.. code-block:: php-attributes
1377+
1378+
// src/Controller/DefaultController.php
1379+
namespace App\Controller;
1380+
1381+
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
1382+
use Symfony\Component\HttpFoundation\Response;
1383+
use Symfony\Component\Routing\Attribute\Route;
1384+
1385+
class DefaultController extends AbstractController
1386+
{
1387+
// this outputs the following generic deprecation message:
1388+
// Since acme/package 1.2: The "new_route_name" route alias is deprecated. You should stop using it, as it will be removed in the future.
1389+
#[Route('/path',
1390+
name: 'new_route_name',
1391+
alias: new DeprecatedAlias('original_route_name', 'MyBundleFixture', '1.0')
1392+
)]
1393+
// you can also define a custom deprecation message (%alias_id% placeholder is available)
1394+
#[Route('/path',
1395+
name: 'new_route_name',
1396+
alias: new DeprecatedAlias('original_route_name', 'acme/package', '1.2', message: 'The "%alias_id%" route alias is deprecated. Do not use it anymore.')
1397+
)]
1398+
public function action(): Response
1399+
{
1400+
// ...
1401+
}
1402+
1403+
#[Route('/path', name: 'new_route_name', alias: [
1404+
new DeprecatedAlias('first_original_route_name', 'acme/package', '1.0'),
1405+
new DeprecatedAlias('second_original_route_name', 'acme/package', '2.0'),
1406+
new DeprecatedAlias('third_original_route_name', 'acme/package', '3.0'),
1407+
])]
1408+
public function another_action()
1409+
{
1410+
// ...
1411+
}
1412+
}
1413+
13521414
.. code-block:: yaml
13531415
13541416
new_route_name:

0 commit comments

Comments
 (0)