2016-06-12 131 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