使用注释进行路由

路由配置包含在 app/config/config.yml 文件中,默认为 app/config/routing.yml 文件。

从那里,你可以链接到具有带注释的路由配置的控制器:

# app/config/routing.yml

app:
    resource: "@AppBundle/Controller"
    type:     annotation

在你自己的绑定中,你可以配置具有两个目的的路由:

  • 匹配请求,以便为请求调用正确的操作。
  • 从名称和路由参数生成 URL。

以下是带注释的路由配置示例:

// src/AppBundle/Controller/DefaultController.php

use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method;

/**
 * @Route("/application")
 */
class DefaultController extends Controller {
    /**
     * @Route("/content/page/{parameter}",
     *        name="my_page",
     *        requirements={"parameter" = "\d+"},
     *        defaults={"parameter" = 42})
     * @Method({"GET", "PUT"})
     */
    public function myPageAction($parameter)
    {
        // ...
    }
}

控制器使用前缀路由进行注释,以便使用前缀在该控制器中添加任何已配置的路由。

配置的路由名为 my_page,并在请求时调用 myPageAction 功能。它有一个名为 parameter 的参数,默认值为。该值仅在与正则表达式匹配时才有效。对于此路由,仅接受 HTTP 方法 GETPUT

请注意,该参数作为函数参数注入到操作中。

参数值为 10 的生成路径可能看起来像/application/content/page/10