2011-10-22 28 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

相关问题