Witam,

mam pewien problem z przeciążaniem konfiguracji w Symfony2.

Mam dwa Bundle: AcmeWebsiteBudnle oraz AcmeAdminBundle. Wykorzystuje zewnętrzną paczkę do paginacji wyników, która pozwala na zdefiniowanie ścieżki do templatki paginatora. Dla Website i Admin Bundle chcę ustawić inny parametr tj:

Acme/AdminBundle/Resources/config/config.yml
Kod
knp_paginator:
  template:
    pagination: AcmeAdminBundle:Pagination:twitter_bootstrap.html.twig

twig:
  form:
    resources:
        - 'AcmeAdminBundle:Form:fields.html.twig'



Acme/WebsiteBundle/Resources/config/config.yml
Kod
knp_paginator:
  template:
    pagination: AcmeWebsiteBundle:Pagination:cc_pagination.html.twig



oba te pliki importuje w:
app/config/config.yml
Kod
imports:
    - { resource: parameters.ini }
    - { resource: security.yml }
    - { resource: doctrine_extensions.yml }
    - { resource: @AcmeWebsiteBundle/Resources/config/config.yml }
    - { resource: @AcmeAdminBundle/Resources/config/config.yml }



Oba się ładują dla każdej paczki (tj. AcmeWebsiteBundle oraz AcmeAdminBundle) i przez to konfiguracja dla Website jest przeciążana konfiguracją Admin....

Aby rozwiązać ten problem wpadłem na pomysł aby usunąć wpis w:

app/config/config.yml
Kod
imports:
    - { resource: parameters.ini }
    - { resource: security.yml }
    - { resource: doctrine_extensions.yml }
    - { resource: @AcmeWebsiteBundle/Resources/config/config.yml }



i konfigurację dla AcmeAdminBundle załadować w:
Acme/AdminBundle/DependencyInjection/AcmeAdminExtension.php:
  1. public function load(array $configs, ContainerBuilder $container)
  2. {
  3. $configuration = new Configuration();
  4. $config = $this->processConfiguration($configuration, $configs);
  5.  
  6. $loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config'));
  7. $loader->load('services.yml');
  8. $loader->load('config.yml');
  9. }


ale powoduje to wyrzucenie wyjątku InvalidArgimentException:
Kod
InvalidArgumentException: There is no extension able to load the configuration for "twig" (in [...]\src\Acme\AdminBundle\DependencyInjection/../Resources/config\config.yml). Looked for namespace "twig", found none



No i nie wiem dlaczego nie widzi mi tej przestrzeni nazw twig... Wydaje mi się, że problem leży w kolejności ładowania plików konfiguracyjnych i przed twig ładowany zostaje mój config, ale nie jestem pewien.


Czy dobrze kombinuje aby ładować plik konfiguracyjny AcmeAdminBundle tylko gdy ta paczka jest uruchamiana i nie uwzględniać tego pliku w paczce AcmeWebsiteBundle? Może macie jakąś podpowiedź co robię źle...?

Z góry bardzo dziękuję za pomoc!

Pozdrawiam,
Maciek