symfony3 使用注释进行路由

示例

路由配置包含在您的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用默认值命名的参数。该值仅在与regex匹配时才有效\d+。对于此路由,仅接受HTTP方法GET和PUT。

请注意,参数已作为功能参数注入到动作中。

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