如何定义控制器作为服务吗
编辑该页面警告:你浏览的文档欧宝官网下载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许可证。