Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [Symfony][Symfony2]Przeciążanie konfiguracji
macq
post 4.03.2013, 16:04:02
Post #1





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 8.11.2012

Ostrzeżenie: (0%)
-----


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

Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 12.06.2025 - 11:08