2011-10-22 56 views
4

我想保存了幾個應用程序,例如特定值:在Symfony2中,哪裏是存儲應用程序參數的正確位置?

  • 爲特定的用戶選擇,如果它沒有被設定默認的身份證號碼
  • 對各種服務的API,如Facebook
  • 鍵/標記/祕密或Flickr

最近我發現迄今http://symfony.com/doc/2.0/cookbook/bundles/best_practices.html#configuration

如果我用app/config/parameters.ini它會是什麼樣子:

[flickr] 
    callbackUrl = http://example.com/approve 
    requestTokenUrl = http://www.flickr.com/services/oauth/request_token 
    consumerKey = 123a1237a29b123a5541232e0279123 

[app] 
    default_layout = 2 

這些應該是在不同的包,並在模板

回答

6

這些應該是在不同的包可用,也模板

他們都可用。只要您可以訪問容器,就可以訪問這些參數。從您鏈接到的文檔: $container->getParameter('acme_hello.email.from');

我認爲您的parameters.ini示例中存在錯誤。 'flickr'和'app'不應該包含在括號中。另外,parameters.ini的第一個元素應該是[parameters]

個人而言,我喜歡使用app.yml文件,因爲我習慣在Symfony 1.x項目中使用它(並且因爲我沒有看到使用.ini文件的原因)。您可以創建app/config/app.yml並將其導入到你的app/config/config.yml文件是這樣的:

imports: 
    - { resource: app.yml } 

你app.yml是這樣的:

parameters: 
    flickr: 
    callbackUrl:  http://example.com/approve 
    requestTokenUrl: http://www.flickr.com/services/oauth/request_token 
    consumerKey:  123a1237a29b123a5541232e0279123 

    app: 
    default_layout: 2 

,這是你將如何訪問數據: $container->getParameter('flickr.callbackUrl');

第三個選項是直接在app/config/config.yml中定義您的參數。代碼將與app/config/app.yml的示例完全相同。我不建議這樣做,因爲app/config/config.yml可以充分滿足捆綁配置參數,我認爲將自己的應用參數保存在單獨的文件中更清晰。但當然,這完全取決於你。

+0

我喜歡你的第二種方法,但我無法得到它的工作。 $ container-> getParameter()在任何控制器中都可用?它應該是$ this->容器...? – ed209

+1

也應該default_layout = 2是default_layout:2? – ed209

+0

@ ed209:是的,這是yml。我認爲在控制器中,你可以這樣做:'$ this-> getContainer()'獲取容器。 – greg0ire

相關問題