使用 YAML 进行路由
路由配置包含在 app/config/config.yml
文件中,默认为 app/config/routing.yml
文件。
从那里,你可以链接到你自己的路由配置
# app/config/routing.yml
app:
resource: "@AppBundle/Resources/config/routing.yml"
它还可能包含多个应用程序全局路由。
在你自己的绑定中,你可以配置具有两个目的的路由:
- 匹配请求,以便为请求调用正确的操作。
- 从名称和路由参数生成 URL。
以下是 YAML 路由配置的示例:
# src/AppBundle/Resources/config/routing.yml
my_page:
path: /application/content/page/{parameter}
defaults:
_controller: AppBundle:Default:myPage
parameter: 42
requirements:
parameter: '\d+'
methods: [ GET, PUT ]
condition: "request.headers.get('User-Agent') matches '/firefox/i'"
该路线名为 my_page
,并在要求时拨打 AppBundle
中的 myPageAction
的 myPageAction
。它有一个名为 parameter
的参数,默认值为。该值仅在与正则表达式\d+
匹配时有效。对于此路由,仅接受 HTTP 方法 GET
和 PUT
。condition
是示例中的表达式,除非 User-Agent 标头与 firefox 匹配,否则路由将不匹配。你可以通过利用传递到表达式中的两个变量来执行表达式中所需的任何复杂逻辑:context
(RequestContext)和 request
(Symfony Request)。
参数值为 10 的生成路径可能看起来像/application/content/page/10
。