Scenariusz:Symfony2 - jak rozszerzyć pakiet dostawcy (na przykład z FOSFacebookBundle)
używam pakiet (FOSFacebookBundle), który pozwala mi ustawić parametry do dokładnie jednej aplikacji Facebook w mojej konfiguracji. Wszystko działa idealnie, ale teraz muszę ustawić nie tylko jedną aplikację, ale i wiele.
Moje podejście:
Utworzyłem AcmeFacebookBundle, który umożliwia wiele aplikacji, które zostaną określone (konfiguracja zdefiniowana w Acme \ FacebookBundle \ wstrzykiwanie zależności \ Configuration) w tablicy tak:
acme_facebook:
apps:
some_competition:
server_url: %acme.facebook.some_competition.server_url%
file: %kernel.root_dir%/../vendor/facebook/php-sdk/src/base_facebook.php
alias: facebook
app_id: %acme.facebook.some_competition.app_id%
secret: % acme .facebook.some_competition.secret%
cookie: true
permissions: [email, user_birthday, user_location]
some_other_competition:
server_url: %acme.facebook. some_other_competition.server_url%
file: %kernel.root_dir%/../vendor/facebook/php-sdk/src/base_facebook.php
alias: facebook
app_id: %acme.facebook. some_other_competition.app_id%
secret: % acme .facebook. some_other_competition.secret%
cookie: true
permissions: [email, user_birthday, user_location]
W Acme \ FacebookBundle \ DependencyInjection \ AcmeFacebookExtension Później przepuszczam wszystkie aplikacje. Chodzi o to, aby porównać parametr server_url z bieżącym adresem URL i nadpisać konfigurację fos_facebook przy pomocy mojego.
class AcmeFacebookExtension extends Extension
{
...
/**
* {@inheritDoc}
*/
public function load(array $configs, ContainerBuilder $container)
{
$configuration = new Configuration();
$config = $this->processConfiguration($configuration, $configs);
foreach ($config['apps'] as $app)
{
// check for matching path here?
foreach (array('file', 'app_id', 'secret', 'cookie', 'domain', 'logging', 'culture', 'permissions') as $attribute)
{
$container->setParameter('fos_facebook.' . $attribute, $app[$attribute]);
}
}
}
Problem:
Ale to jest dokładnie tam, gdzie utknąłem. Oczywiście, nie mam dostępu do obiektu Request lub DiC z poziomu AcmeFacebookExtension, aby wykonać to porównanie. Czy podchodzę całkowicie niewłaściwie? Czy masz lepszy pomysł na rozwiązanie tego problemu?
Different questin, sam cel: [Symfony2 obciążenie konfiguracja warunkowego] (http://stackoverflow.com/questions/9603384/symfony2-load-conditional-configuration) – leek
Tak, nie jestem pewien, czy ustawienie konfiguracji w twoim kontrolerze jest jednak właściwym podejściem? Konfigurowanie wtrysku, gdy parsowanie konfiguracji odbywa się w odpowiedni sposób ... – Burgi