registerContainerConfiguration不在Prod中执行

时间:2016-07-25 10:09:07

标签: symfony dependency-injection kernel

我想在config.yml的同时加载一个yml文件。 这是我的代码:

public function registerContainerConfiguration(LoaderInterface $loader) { $loader->load($this->getRootDir().'/config/config_'.$this->getEnvironment().'.yml'); $envParameters = $this->getEnvParameters(); if(isset($envParameters['config.boutique'])){ $loader->load($this->getRootDir().'/config/boutique/'.$envParameters['config.boutique'].'.yml'); } }

在模式开发中,这个工作就像一个魅力,但当我处于模式prod时,此功能不执行。 我必须在app.dev.php中替换这一行:

$kernel = new AppKernel('prod', true);

通过

$kernel = new AppKernel('prod', false);

如何在模式prod中加载此yml文件? 谢谢你的帮助

1 个答案:

答案 0 :(得分:0)

如果我理解正确,你就不能在配置文件中定义一个参数并使用它,因为symfony必须编译它的内核。

您可以通过添加

来定义文件
#config_prod.yml
   imports:
    - { resource: boutique/YOUR_VALUE.yml }
#config_dev.yml
   imports:
    - { resource: boutique/YOUR_VALUE_DEV.yml }

如果YOUR_VALUE是动态的,我希望这篇文章会有所帮助:Symfony: Dynamic configuration file loading。它正在使用Bundle的DependencyInjection