Установите facebook app_id для каждого из моих разных приложений в одном проекте Symfony2

Другими словами, у меня есть разные пакеты для каждого из моих приложений fb, и я хочу загрузить app_id и секрет приложения в зависимости от используемого пакета.

Я также использую FOSFacebook Bundle

Мой конфиг.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");

дает мне «Невозможно вызвать set () для замороженного ParameterBag». ошибка.

А это: http://groups.google.com/group/symfony2/browse_thread/thread/6f09df702f656874 говорит, что я должен сначала явно получить параметр, чтобы он работал, или использовать еще один пакет.

Итак, вопрос в том, что является относительно простым и менее трудоемким способом сделать это?


person Rishi    schedule 20.04.2012    source источник
comment
Куда вы звоните: $this->container->setParameter("my_app_id", "99999999999");? В контроллере или из вашего расширения внедрения зависимостей?   -  person Matt    schedule 20.04.2012
comment
Внутри контроллера моего первого пакета приложений facebook   -  person Rishi    schedule 21.04.2012


Ответы (1)


Я думаю, что параметры замораживаются после создания контейнера для внедрения зависимостей. Это означает, что вы не можете напрямую изменять параметры контроллера.

Что вы могли бы сделать, так это создать расширение пакета, которое будет устанавливать параметр. В расширении пакета параметры могут быть установлены и изменены. Посетите этот раздел поваренной книги, чтобы узнать, как для создания расширения пакета.

Кроме того, вы можете ознакомиться с этим рецептом кулинарной книги, в котором показано, как установить параметры из внешнего источника.

Удачи в вашем случае использования.

С уважением,
Мэтт

person Matt    schedule 23.04.2012