为同一个Symfony2项目中的每个不同应用设置facebook app_id

时间:2012-04-20 07:02:49

标签: facebook symfony config fosfacebookbundle

换句话说,我为每个fb应用程序提供了不同的包,并希望根据所使用的包加载app_id和app secret。

我也在使用FOSFacebook Bundle

我的config.yml:

parameters:
    # facebook
    my_app_id: test
    my_app_secret: test
fos_facebook:
    file:   %kernel.root_dir%/../vendor/facebook/src/base_facebook.php
    alias:  facebook
    app_id: %my_app_id%
    secret: %my_app_secret%
    cookie: true

尝试做:

$this->container->setParameter("my_app_id", "99999999999");

给了我“不可能在冻结的ParameterBag上调用set()。”错误。

而这:http://groups.google.com/group/symfony2/browse_thread/thread/6f09df702f656874 我说我必须首先明确地让getParameter工作或使用另一个捆绑包。

所以问题是,这样做的相对简单且耗时少的方法是什么?

1 个答案:

答案 0 :(得分:1)

我认为一旦构建了依赖注入容器,参数就会被冻结。这意味着您无法直接更改控制器中的参数。

您可能要做的是创建一个将设置参数的包扩展。在捆绑扩展中,可以将参数设置为已更改。请检查此cookbook section以了解如何创建捆绑扩展。

此外,您可以查看此cookbook recipe,其中显示了如何从外部来源设置参数。

祝你的用例好运。

的问候,
马特