2012-04-20 18 views
0

換句話說,我爲每個fb應用程序都有不同的包,並且要根據正在使用的包加載app_id和應用程序祕密。在同一個Symfony2項目中爲我的每個不同應用程序設置facebook app_id

我也使用FOSFacebook捆綁

我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「。錯誤。

而這個:http://groups.google.com/group/symfony2/browse_thread/thread/6f09df702f656874 說我必須首先明確getParameter它爲工作或使用另一個捆綁。

所以問題是,什麼是相對簡單和耗時的方式來做到這一點?

+0

你在哪裏做這樣的判斷:'$這個 - >容器 - >的setParameter( 「my_app_id」, 「99999999999」);'?在控制器或從你的依賴注入擴展? – Matt 2012-04-20 12:27:22

+0

在我的第一個Facebook應用程序包的控制器 – Rishi 2012-04-21 11:19:47

回答

1

我認爲一旦構建了依賴注入容器,參數就會被凍結。這意味着您不能直接更改控制器中的參數。

你可能做的是創建一個設置參數的bundle擴展。在包擴展中,可以將參數設置爲已更改。檢查此cookbook section以瞭解如何創建包擴展。

此外,你可以看看這個cookbook recipe,它顯示瞭如何從外部源設置參數。

祝你好運與你的用例。

問候,
馬特

相關問題