Symfony2 - 在services.xml中导入config.yml

时间:2013-12-05 13:49:41

标签: php xml symfony dependency-injection yaml

我是Symfony2的新手,我想将config.yml导入services.xml。

config.yml:

cleverreach:  
   soap:
     key: myApiKey
     url: myWsdlUrl

的services.xml:

<parameters>
  <parameter key="key">getKey</parameter>
  <parameter key="url">getUrl</parameter>
</parameters>

我不知道如何将变量提供给services.xml ... 这是我用来解析config.yml并加载services.xml的PHP代码:

    $appPath = dirname(__DIR__);
    $container = new ContainerBuilder();
    $loader = new XmlFileLoader($container, new FileLocator($appPath));
    $loader->load('services.xml');

    // todo@all parse yml, add params to container
    $load = new YamlFileLoader($container, new FileLocator($appPath . '/Config'));

    $yaml_config_file = $appPath . '/Config/Config.yml';
    $parsed_yml_file = Yaml::parse(file_get_contents($yaml_config_file));

1 个答案:

答案 0 :(得分:3)

您的扩展方法获取ContainerBuilder和配置数组。强烈建议您在使用前使用Configuration class进行处理,但从技术上讲,您可以在没有它的情况下访问它(执行var_dump或debug $ config数组作为方法参数)。

按照您想要的方式提取变量后,您需要执行以下操作:

$container->setParameter('parametername', $parameterValue);

之后你可以加载'services.yml'并使用它,例如:

services:
    my_service:
        class: %parametername%