【发布时间】:2016-10-24 13:36:03
【问题描述】:
我需要为每个路由实现各种元数据属性,我的一个想法是将属性直接应用于每个路由,以供外部元数据侦听器使用。
例如,侦听器将使用以下路由中定义的服务 (@example_title_resolver) 来解析为某种形式的页面标题。
example_route:
path: /blah/blah
defaults:
_controller: MyBundle:MyController:index
meta:
title:
resolver: '@example_title_resolver'
value: 'Example | %%value_to_be_resolved%% | %default_title_suffix%'
不幸的是,虽然参数得到了解决,但我发现服务没有。目前绕过这种方法的唯一方法是将服务容器直接注入到侦听器中,并查询服务,这是不受欢迎的。
还有更好的选择吗?鉴于我真的很难找到解决路线内服务的问题,整个方法是否应该避免?
【问题讨论】:
-
我从未见过以这种方式使用
defaults。它是否记录在任何地方? -
在内核监听器的情况下,注入容器被认为是可以接受的。至少我自己。
-
@Martin 没有在任何地方记录,只是我天真地期望它能够工作,给定参数已解决(@see github.com/symfony/symfony/blob/master/src/Symfony/Bundle/…)。我也可以为此使用
options,但同样的问题也适用。