如何使用php变量配置服务i symfony2?

时间:2014-04-07 06:35:26

标签: php symfony dependency-injection

我试图使用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

这是包含我提到的配置的数组。

1 个答案:

答案 0 :(得分:1)

你不能。服务容器在请求流开始时创建,而控制器几乎在流程结束时执行。

如果您确实无法在请求的容器构建阶段访问所需的配置,则可以使用setter设置容器中的值,并在构建服务时使用默认值。

更好的方法是将其移出控制器并进入事件监听器。