2011-08-03 13 views
14

Mam wiele ustawień, które są obecnie w pliku config.yml.Jak ładować ustawienia konfiguracyjne z bazy danych w Symfony2?

Idąc dalej chcę być w stanie stworzyć interfejs, w którym administratorzy będą mogli aktualizować te ustawienia, więc chcę mieć możliwość zarządzania tymi ustawieniami za pośrednictwem bazy danych.

Jak mogę załadować te ustawienia z bazy danych do Symfony2 i gdzie i kiedy je załadować?

Cheers

Adam

Odpowiedz

7

Jest cookbook article który wyjaśnia z grubsza jak to zrobić (choć krótko), w nawiązaniu do załadunku w ustawieniach zewnętrznie z Drupal. Podstawowym założeniem jest to, aby zrobić coś takiego w swoim config (przykładem jest yml):

# app/config/config.yml 
imports: 
    - { resource: parameters.php } 

następnie w parameters.php można robić, co trzeba, aby uzyskać config i ustawić go w następujący sposób:

$container->setParameter('my.db.parameter', $value); 

(pobrana z książki kucharskiej, nieznacznie zmodyfikowana).

+0

Witaj bogaty, dzięki za odpowiedź, która brzmi świetnie. Czy istnieje dobre miejsce, w którym zaleca się przechowywanie pliku parameters.php? Powinien być częścią pakietu lub usługi lub powinienem mieć go jako samodzielny plik php. W jaki sposób uzyskam dostęp do usługi doktryny? Przepraszamy za wszystkie pytania. –

+0

Witaj bogaty, przepraszam, tylko spojrzał na przykład książki kucharskiej i widzę, gdzie powinien iść plik. –

+1

Powiedziałbym, że przechowuj twój plik w katalogu 'app/config' - przynajmniej twoja konfiguracja jest cała razem. Nie jestem jednak pewien, w jaki sposób "dostępne" usługi są w tym momencie, jeśli w ogóle, więc nie jestem pewien, czy byłbyś w stanie zrobić np. '$ Container-> get (" my.service ")'. Może warto spróbować! – richsage

7

Spójrz na UnifikDatabaseConfigBundle. Tworzy strukturę bazy danych, która umożliwia konfigurację parametrów Symfony bezpośrednio z bazy danych.

+0

Świetny pakiet! Właśnie miałem opracować coś podobnego. Dzięki za udostępnienie! :) – tftd

Powiązane problemy