Scenario:Symfony2 - come estendere un fascio fornitore (ad esempio del FOSFacebookBundle)
sto usando un fascio (FOSFacebookBundle) che mi permette di impostare i parametri per esattamente un'applicazione Facebook nella mia configurazione. Tutto funziona perfettamente bene, ma ora ho bisogno di impostare non solo una app, ma più.
Il mio approccio:
ho creato un AcmeFacebookBundle, che consente a più applicazioni da definire (configurazione definita in Acme \ FacebookBundle \ DependencyInjection \ Configuration) in un array in questo modo:
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]
In Acme \ FacebookBundle \ DependencyInjection \ AcmeFacebookExtension Mi collego quindi a tutte le app. L'idea è di confrontare il parametro server_url con l'URL corrente e sovrascrivere la configurazione di fos_facebook con la mia.
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]);
}
}
}
Problema:
Ma questo è esattamente dove mi sono bloccato. Ovviamente, non ho accesso all'oggetto Request o al DiC da AcmeFacebookExtension per fare questo confronto. Sto sbagliando completamente nel mio approccio? Hai qualche idea migliore su come affrontare questo problema?
Diverso questin, stesso obiettivo: [carico configurazione condizionale Symfony2] (http://stackoverflow.com/questions/9603384/symfony2-load-condizionale-configurazione) – leek
Sì, non sono sicuro se l'impostazione di configurazione nel controller è l'approccio giusto però? Iniezione di config quando l'analisi di configurazione avviene sembra il modo giusto per farlo ... – Burgi