@@ -24,11 +24,21 @@ Symfony provides several route loaders for the most common needs:
2424 # loads routes from the given routing file stored in some bundle
2525 resource : ' @AcmeBundle/Resources/config/routing.yaml'
2626
27+ app_psr4 :
28+ # loads routes from the PHP attributes of the controllers found in the given PSR-4 namespace root
29+ resource : ' ../src/Controller/'
30+ type : attribute@App\Controller
31+
2732 app_attributes :
2833 # loads routes from the PHP attributes of the controllers found in that directory
2934 resource : ' ../src/Controller/'
3035 type : attribute
3136
37+ app_class_attributes :
38+ # loads routes from the PHP attributes of the given class
39+ resource : App\Controller\MyController
40+ type : attribute
41+
3242 app_directory :
3343 # loads routes from the YAML, XML or PHP files found in that directory
3444 resource : ' ../legacy/routing/'
@@ -51,9 +61,15 @@ Symfony provides several route loaders for the most common needs:
5161 <!-- loads routes from the given routing file stored in some bundle -->
5262 <import resource =" @AcmeBundle/Resources/config/routing.yaml" />
5363
64+ <!-- loads routes from the PHP attributes of the controllers found in the given PSR-4 namespace root -->
65+ <import resource =" ../src/Controller/" type =" attribute@App\Controller" />
66+
5467 <!-- loads routes from the PHP attributes of the controllers found in that directory -->
5568 <import resource =" ../src/Controller/" type =" attribute" />
5669
70+ <!-- loads routes from the PHP attributes of the given class -->
71+ <import resource =" App\Controller\MyController" type =" attribute" />
72+
5773 <!-- loads routes from the YAML or XML files found in that directory -->
5874 <import resource =" ../legacy/routing/" type =" directory" />
5975
@@ -70,9 +86,17 @@ Symfony provides several route loaders for the most common needs:
7086 // loads routes from the given routing file stored in some bundle
7187 $routes->import('@AcmeBundle/Resources/config/routing.yaml');
7288
73- // loads routes from the PHP attributes (#[Route(...)]) of the controllers found in that directory
89+ // loads routes from the PHP attributes (#[Route(...)])
90+ // of the controllers found in the given PSR-4 namespace root
91+ $routes->import('../src/Controller/', 'attribute@App\Controller');
92+
93+ // loads routes from the PHP attributes (#[Route(...)])
94+ // of the controllers found in that directory
7495 $routes->import('../src/Controller/', 'attribute');
7596
97+ // loads routes from the PHP attributes (#[Route(...)]) of the given class
98+ $routes->import('App\Controller\MyController', 'attribute');
99+
76100 // loads routes from the YAML or XML files found in that directory
77101 $routes->import('../legacy/routing/', 'directory');
78102
@@ -85,6 +109,11 @@ Symfony provides several route loaders for the most common needs:
85109 The ``attribute `` value of the second argument of ``import() `` was introduced
86110 in Symfony 6.1.
87111
112+ .. versionadded :: 6.2
113+
114+ The possibility to suffix the ``attribute `` resource type with a PSR-4
115+ namespace root was introduced in Symfony 6.2.
116+
88117.. note ::
89118
90119 When importing resources, the key (e.g. ``app_file ``) is the name of the collection.
0 commit comments