Symfony - 仅在开发中定义路由.环境

use*_*227 4 configuration routing yaml symfony

我正在使用SF2,我创建了一些帮助调试项目的路线:

widget_debug_page:
    path:       /debug/widget/{widgetName}
    defaults:   { _controller: WidgetBundle:Debug:default }
Run Code Online (Sandbox Code Playgroud)

问题是这条路线在进入生产时绝不可以到达.

我找不到指定环境的参数.

你能帮帮我吗?

谢谢你的帮助!

Bre*_*ith 16

仅适用于想要与annotation系统一起使用的人:

/**
 * @Route("/my-route", condition="'dev' === '%kernel.environment%'")
 */
public function index() {}
Run Code Online (Sandbox Code Playgroud)


Jon*_*Pkr 9

您可以在routing_dev.yml(Symfony 2/3)中添加路由,或在config/routes/dev/(Symfony 4)中创建一个dev-only路由文件.

  • 是否有可能通过宣布?也许通过`condition`选项(找不到关于它的文档) (3认同)

Tom*_*nas 5

如前所述,您可以通过向路由定义添加“条件”指令来定义条件路由。如果您需要为适当的环境限制路由,您可以%kernel.environment%直接检查参数值。例如:

widget_debug_page:
    path:       /debug/widget/{widgetName}
    defaults:   { _controller: WidgetBundle:Debug:default }
    condition:  "%kernel.environment% === 'dev'"
Run Code Online (Sandbox Code Playgroud)