我正在将一个遗留 PHP 项目(前 OO)迁移到 Symfony2。对于每一个请求,我都必须:
- 计算一些动态数据(取决于当前日期和/或一些请求参数)
- 在呈现的响应中使用该数据(多次!)。
一种天真的方法是:
- 在每个控制器方法开始时,调用一些全局辅助函数来计算数据。
- 在每个控制器方法结束时,将数据作为参数传递给 twig 模板。
听起来很乏味。也许这样做会更好:
- 为请求事件创建一个订阅者,该订阅者在请求进入时计算数据并通过 getter 方法提供对它的访问。
- 将该订阅者/服务定义为
config.yml
. - 在 twig 模板中,根据需要调用该服务的 getter 方法。
这可行吗?特别是,树枝变量/服务和订阅者是否总是相同的?或者该服务可能是一个新创建的实例?
这是某种滥用吗?或者这种用例有官方推荐的方法吗?
编辑数据不仅需要在每个树枝模板中,而且在某些控制器中也需要。