symfony从service.yml更改为bundle中的service.xml

The*_*Tom 0 xml service yaml symfony

有没有办法将service.yml中的实际设置更改为Service.xml?当我创建捆绑包时,我将yml定义为标准形式,现在我需要切换到xml,因为那里存在现有服务.我希望在不改变它们的情况下使用的xml文件(我认为这也可行).

kix*_*kix 8

当然,如果您愿意,可以切换到XML并配置配置文件.看看Extension位于其下方的捆绑类YourBundle/DependencyInjection/YourBundleExtension.php.它的load方法应如下所示:

/**
 * {@inheritDoc}
 */
public function load(array $configs, ContainerBuilder $container)
{
    $configuration = new Configuration();
    $config = $this->processConfiguration($configuration, $configs);

    $loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config'));
    $loader->load('services.yml');
}
Run Code Online (Sandbox Code Playgroud)

要使用XML配置而不是YAML,请实例化XmlFileLoader而不是YamlFileLoader(参数将是相同的),并修复$loader->load()方法调用,以便它接收您的配置文件名:

/**
 * {@inheritDoc}
 */
public function load(array $configs, ContainerBuilder $container)
{
    $configuration = new Configuration();
    $config = $this->processConfiguration($configuration, $configs);

    $loader = new Loader\XmlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config'));
    $loader->load('services.xml');
}
Run Code Online (Sandbox Code Playgroud)