2016-06-12 134 views
1

我尝试用微控制器特性设置一个symfony项目。但不是使用config.yml,我想使用config.php文件。Symfony 3.0从php文件加载配置

return [ 
    'framework' => [ 
     'secret' => 'secret_' 
    ] 
]; 

实现此目的的最佳实践是什么?

+0

已经有一段时间了,但我确信你可以使用一个php文件返回一个数组并调整加载器来使用它。但是你这样做并不是真的购买任何东西。配置是一个相当复杂的组件,其中来自多个配置文件的值最终被合并在一起。最终结果是一组针对速度进行了优化的缓存php文件。所以你不妨遵循约定和使用yaml。 – Cerad

回答

2

的解释,您可以在前端控制器(app.php)使用configureContainer方法直接从一个阵列加载配置,这样的:

protected function configureContainer(ContainerBuilder $c, LoaderInterface $loader) 
{ 
    // PHP equivalent of config.yml 
    $c->loadFromExtension('framework', array(
     'secret' => 'S0ME_SECRET' 
    )); 
} 

docs here

2

你应该用容器设置的参数,如

$container->setParameter('framework.secret', 'secret_'); 

采用微内核的性质时,在Symfony Docs

+0

为什么?如果我在yml中声明配置,那么它在内部也会被转换成一个php数组......我只想跳过这一步。 – user2429841