我试图使用symfony2服务容器。但是,当我构建每个服务时,我想使用我的控制器中定义的一些变量。我想知道这是否可能以及如何做如果上述情况不可能,可以选择其他方式。
p.s:我正在使用yml服务定义。
$_ws['configurator'] = cmfGetInitObject(); //returns an instance of cmlObj
$_ws['configurator']->setOptions(
array(
'configurationsFolderPath' => realpath(dirname(__FILE__) . '/../configurations'),
'server' => &$_SERVER,
'legacyFormatEnabled' => true
)
);
$_ws['packageManager'] =& $_ws['configurator']->packageManager;
$_ws = $_ws['configurator']->load($_ws); //$_ws['configurator'] again resolves to a cmlObj
这是包含我提到的配置的数组。
答案 0 :(得分:1)
你不能。服务容器在请求流开始时创建,而控制器几乎在流程结束时执行。
如果您确实无法在请求的容器构建阶段访问所需的配置,则可以使用setter设置容器中的值,并在构建服务时使用默认值。
更好的方法是将其移出控制器并进入事件监听器。