@@ -247,6 +247,68 @@ Use the ``methods`` option to restrict the verbs each route should respond to:
247
247
automatically for you when the :ref: `framework.http_method_override <configuration-framework-http_method_override >`
248
248
option is ``true ``.
249
249
250
+ Matching Environments
251
+ ~~~~~~~~~~~~~~~~~~~~~
252
+
253
+ Use the ``env `` option to register a route only when the current
254
+ :ref: `configuration environment <configuration-environments >` matches the
255
+ given value:
256
+
257
+ .. configuration-block ::
258
+
259
+ .. code-block :: php-attributes
260
+
261
+ // src/Controller/DefaultController.php
262
+ namespace App\Controller;
263
+
264
+ use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
265
+ use Symfony\Component\HttpFoundation\Response;
266
+ use Symfony\Component\Routing\Attribute\Route;
267
+
268
+ class DefaultController extends AbstractController
269
+ {
270
+ #[Route('/tools', name: 'tools', env: 'dev')]
271
+ public function developerTools(): Response
272
+ {
273
+ // ...
274
+ }
275
+ }
276
+
277
+ .. code-block :: yaml
278
+
279
+ # config/routes.yaml
280
+ tools :
281
+ path : /tools
282
+ controller : App\Controller\DefaultController::developerTools
283
+ env : dev
284
+
285
+ .. code-block :: xml
286
+
287
+ <!-- config/routes.xml -->
288
+ <?xml version =" 1.0" encoding =" UTF-8" ?>
289
+ <routes xmlns =" http://symfony.com/schema/routing"
290
+ xmlns : xsi =" http://www.w3.org/2001/XMLSchema-instance"
291
+ xsi : schemaLocation =" http://symfony.com/schema/routing
292
+ https://symfony.com/schema/routing/routing-1.0.xsd" >
293
+
294
+ <route id =" tools" path =" /tools" controller =" App\Controller\DefaultController::developerTools" >
295
+ <env >dev</env >
296
+ </route >
297
+ </routes >
298
+
299
+ .. code-block :: php
300
+
301
+ // config/routes.php
302
+ use App\Controller\DefaultController;
303
+ use Symfony\Component\Routing\Loader\Configurator\RoutingConfigurator;
304
+
305
+ return function (RoutingConfigurator $routes): void {
306
+ $routes->add('tools', '/tools')
307
+ ->controller([DefaultController::class, 'developerTools'])
308
+ ->env('dev')
309
+ ;
310
+ };
311
+
250
312
.. _routing-matching-expressions :
251
313
252
314
Matching Expressions
0 commit comments