拦截控制器 - Symfony2

时间:2013-04-07 07:13:00

标签: php symfony

我想拦截所有控制器操作并执行以下两项操作之一(取决于选项 - 对于此示例,请说明URL中的查询字符串值):

(1)返回仅包含变量的数组,而不是渲染模板

(2)完全渲染模板,但忽略该模板中的任何“扩展”操作

这样做的原因是使用相同的服务器端代码,选项1允许我只返回变量来表示Ajax请求,而选项2允许我只返回HTML的内容部分(对于Ajax)而不是而不是带导航等的完整HTML。

我已经尝试过扩展控制器,但仍然让人讨厌'与Symfony \ Bundle \ FrameworkBundle \ Controller \ Controller'问题不匹配。

我尝试过使用事件监听器,这似乎让我更接近,但我不认为听控制器事件实际上会运行控制器。

我确定这应该很容易吗?

1 个答案:

答案 0 :(得分:1)

为此,您可以使用FOSRestBundle或仅使用其部件。

来自README.md:

  

用于启用输出和格式无关控制器的视图层

https://github.com/FriendsOfSymfony/FOSRestBundle