Fixtures SonataUserBundle en Symfony2

En ocasiones, necesitamos dotar de contenidos a nuestra base de datos, ya sean datos reales o de prueba.

Symfony por si mismo, no ofrece ningún sistema para gestionar fixtures, pero estamos de suerte, Doctrine2 tiene una librería que nos permite escribirlos, DoctrineFixturesBundle.

El código de este post, es para tus DataFixtures sobre Doctrine ORM, y crean 2 grupos de usuarios y un usuario super-admin, para SonataUserbundle.

Instalar DoctrineFixturesBundle

Lo primero es instalar DoctrineFixturesBundle:

Ahora lo añadimos a nuestro app/AppKernel.php, es importante que te fijes en donde se añade, en nuestros entornos ‘dev’ y ‘test’:

Con estos 2 pasos, ya tenemos instalado

Escribimos nuestros Fixtures en Symfony2

Vamos a utilizar la funcionalidad que nos ofrece este bundle, de indicar el orden de ejecución de cada uno de nuestros fixtures, y de referenciar los objetos entre ellos.

Creamos fixtures para los grupos:

En la línea 10, referenciamos el grupo ‘Super-administrador’ que utilizaremos para asignárselo al usuario.

Creamos fixtures para el usuario:

Cargamos fixtures

Lanzamos el comando de consola:

Hay que tener mucho cuidado, ya que este comando, limpiará nuestra base de datos para incluir los que están definidos en nuestros fixtures.

Si lo que queremos es añadirlos, manteniendo todos los contenidos existentes en la base de datos, debemos incluir la opción append:

En este momento, ya tenemos volcados nuestros contenidos en la base de datos. ¡A disfrutar!

Referencias