簡體   English   中英

在Symfony2中,哪里是存儲app wide參數的正確位置?

[英]In Symfony2 where is the correct place to store an app wide parameter?

我想存儲一些特定於應用程序的值,例如:

  • 特定用戶選擇的默認ID編號(如果尚未設置)
  • 各種服務的密鑰/令牌/秘密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

這些應該在不同的包中以及模板中提供

這些應該在不同的包中以及模板中提供

他們是。 只要您可以訪問容器,就可以訪問參數。 從您鏈接到的文檔: $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可以充滿捆綁配置參數,我認為將你自己的app params保存在一個單獨的文件中會更清晰。 但當然,這完全取決於你。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM