Desarrollo de Aplicaciones

¿Cómo generar un CRUD de pruebas en Symfony?

Un CRUD es un entorno generalmente no visible para el usuario que nos permite interactuar con la base de datos, facilitando las cuatro tareas básicas: Create (crear), Read (leer), Update(actualizar), Delete (borrar).

¿Cómo generar un CRUD de pruebas en Symfony?

CRUD en Symfony

Una de las pegas que encontramos al desarrollar con Frameworks es el desarrollo de elementos repetidos de forma recurrente, como puede ser un gestor de urls, un sistema de gestión de subida de ficheros, un método de autenticación de usuarios y roles y, por supuesto, un CRUD.

Existen Frameworks que ya han pensado en esto y te permiten generar un CRUD. Un ejemplo es Yii2. Incluso el propio Symfony en su primera versión lo permitía.

Realmente Symfony al ser un framework modulable y con una gran vinculación entre formularios y gestión de entidades, permite que nos podamos generar uno propio, por supuesto, exportable a cualquier proyecto.

Para los que no quieran generar un propio tenemos varias opciones más sencillas:

  • Adoptar uno de terceros. Existen dos bastante potentes:
    • Easy Admin: Muy sencillo de hacerlo funcionar.
    • Sonata Admin: Este es muy complejo, pero pertenece al proyecto Sonata, que se compone de un montón de Bundles que te permiten montar un comercio electrónico.
  • Utilizar el generador de CRUD de Symfony (muy básico).

Para utilizar el generador de CRUD tenemos que seguir dos pasos:

  1. Generar una entidad.
  2. Generar el crud para la entidad creada.

Generar una nueva entidad

Para generar una entidad únicamente vamos a la terminal, a nuestro proyecto Symfony, y escribimos:

php bin/console generate:doctrine:entity

Vamos contestando las preguntas del terminal y ya tendremos la entidad creada con los campos que le hayamos indicado.

Utilizar el generador de CRUD de Symfony

Supongamos que hemos creado una entidad en el bundle AcmeBlog y se llama post. A partir de la entidad aplicamos el siguiente comando:

            php bin/console generate:doctrine:crud --entity=AcmeBlogBundle:Post

Y ya está, se habrán generado unas vistas, controladores y rutas para:

  • Listar: prefijo/
  • Crear: prefijo/new
  • Editar: prefijo/edit/{$id}
  • Ver: prefijo/{$id}
  • Borrar: prefijo/{$id} Accesible mediante el método POST.

Comparte este artículo

Artículos Relacionados