如何定义控制器作为服务吗

编辑该页面

警告:你浏览的文档欧宝官网下载appob娱乐下载Symfony 2.1,不再维护。

这个页面的更新版本Symfob娱乐下载ony 6.2(当前的稳定版本)。

如何定义控制器作为服务吗

在书中,您已经了解了如何使用容易控制器当它扩展了基础控制器类。虽然这工作很好,控制器也可以指定为服务。

指一个控制器的定义为一个服务,使用单一的冒号(:)符号。例如,假设您已经定义了一个服务调用my_controller你想期待一个方法调用indexAction ()在服务:

1
美元- >转发(“my_controller: indexAction”,数组(“foo”= >美元酒吧));

您需要使用相同的符号定义路线_controller值:

1 2 3
my_controller:模式:/默认值:{_controller:my_controller: indexAction}

以这种方式使用一个控制器,它必须服务容器中定义配置。有关更多信息,请参见服务容器一章。

当使用一个控制器定义为一个服务,它将最有可能不是扩展了基本控制器类。而不是依靠其快捷方法,你会直接与你所需要的服务进行交互。幸运的是,这通常是非常简单和基础控制器类本身是一个伟大的来源如何执行许多常见任务。

请注意

指定一个控制器作为服务需要多一点的工作。主要的优势是,整个控制器或任何服务传递给控制器可以通过服务容器配置修改。这是特别有用,当开发一个开源包或任何包,将使用在许多不同的项目。所以,即使你不指定控制器作为服务,你可能会看到在一些开源Symfony2包完成。ob娱乐下载

使用注释的路由

当使用注释设置路由使用控制器定义为一个服务时,您需要指定您的服务如下:

1 2 3 4 5 6 7
/ * * *@Route(" /博客”,服务=“my_bundle.annot_controller”) *@Cache(到期= "明天")* /AnnotController扩展控制器{}

在这个例子中,my_bundle.annot_controller应的id吗AnnotController服务容器中定义的实例。这是记录的@Routing一章。

这项工作,包括代码示例,许可下Creative Commons冲锋队3.0许可证。