可以同时使用 Annotation 和 YAML 路由吗?

Can you use both Annotation and YAML routing?

我有一些使用注释路由的 symfony 代码。我需要更改现在从 parameters.yml 中的设置获取主机的路由。我看到如果你在 routing.yaml 中定义路由是可能的: http://symfony.com/doc/current/components/routing/hostname_pattern.html 所以我想知道是否可以同时使用注释和 routing.yaml 中定义的路由,或者你是否只能做一个或另一个(换句话说,我将不得不将捆绑包中的所有路由更改为 routing.yaml )?虽然我猜不建议两者都做,以保持代码干净。

是的,您可以同时使用两者。事实上,在 Symfony 标准版中发生的只是在 config.yml:

中导入 main routing.yml
framework:
    router:
        resource: "%kernel.root_dir%/config/routing.yml"

并且在此 routing.yml 中,您使用 annotation 路由导入 Controllers

routing.yml:

your_annotation_route:
    resource: "@AcmeDemoBundle/Controller/DefaultController.php"
    type: annotation
#########  you can use regular yml routing here ########
your_yaml_route:
    path:     /
    host:     m.example.com
    defaults: { _controller: AcmeDemoBundle:Main:mobileHomepage }

当然可以,但您也可以配置路由器以生成所需的 url。

以下是从控制台命令发送电子邮件的示例: http://symfony.com/doc/current/cookbook/console/sending_emails.html

在控制台命令中没有请求或网络服务器配置。所以这是另一种以编程方式设置路由的明确方法。 希望对你有所帮助。