2011-08-03 10 views
14

Tengo una serie de configuraciones que se encuentran actualmente en el archivo config.yml.¿Cómo se carga la configuración de la base de datos en Symfony2?

De ahora en adelante, deseo poder desarrollar una interfaz en la que los administradores puedan actualizar estas configuraciones, por lo que deseo poder administrar estas configuraciones a través de la base de datos.

¿Cómo podría cargar estos ajustes desde la base de datos a Symfony2 y dónde y cuándo los cargaría?

Saludos

Adam

Respuesta

7

Hay una cookbook article que explica más o menos cómo hacer esto (aunque sea brevemente), en referencia a la carga en la configuración externa de Drupal. La idea básica es hacer algo como esto en su configuración (ejemplo es yml):

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

después en parameters.php que puede hacer lo que sea necesario para obtener su configuración, y configurarlo de la siguiente manera:

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

(tomado del libro de cocina, ligeramente modificado).

+0

Hola, gracias por la respuesta que suena genial. ¿Hay algún buen lugar que recomiendas para almacenar el archivo parameters.php? Debería ser parte de un paquete o un servicio o debería tenerlo como un archivo php independiente. ¿Cómo podría acceder al servicio doctrine orm? Lo siento por todas las preguntas. –

+0

Hola rico, lo siento, solo miré el ejemplo del libro de cocina y puedo ver dónde debe ir el archivo. –

+1

Yo diría que guarde su archivo en el directorio 'app/config'; al menos su configuración está todo junto. Sin embargo, no estoy seguro de cómo están disponibles los servicios "disponibles" en ese momento, por lo que no estoy seguro de poder hacer, por ejemplo, '$ container-> get (" my.service ")'. ¡Puede valer la pena intentarlo! – richsage

7

Eche un vistazo a UnifikDatabaseConfigBundle. Crea una estructura de base de datos que permite la configuración de los parámetros de Symfony directamente desde la base de datos.

+0

¡Gran paquete! Estaba a punto de desarrollar algo similar. ¡Gracias por compartir! :) – tftd

Cuestiones relacionadas