Trabajar con entidades en Symfony significa definir la estructura de tus tablas directamente desde la terminal, sin tocar SQL manualmente. A través de comandos simples, puedes construir toda la base de datos de tu proyecto, entender el flujo completo desde la creación de campos hasta la migración final y ver los resultados reflejados en tu gestor de base de datos.
¿Cómo se crea una entidad en Symfony desde la terminal?
El proceso comienza abriendo una terminal en Visual Studio Code y ejecutando el comando php bin/console make:entity [00:28]. Este comando interactivo te guía paso a paso para definir el nombre de la entidad y sus campos.
Para el ejemplo principal se crea la entidad Producto con los siguientes campos:
- name: tipo string, longitud 255, no puede estar vacío.
- summary: tipo text, almacena la información resumida del producto.
Al finalizar, Symfony genera automáticamente el archivo PHP que representa tu tabla. Una entidad es exactamente eso: un archivo PHP que actúa como representación de una tabla en la base de datos.
¿Qué otras entidades se necesitan para un ejercicio completo?
Para construir un sistema realista, se crean entidades adicionales utilizando el mismo comando [02:15]:
- Metadata: almacena información adicional del producto con campos code (string, 255) y content (text). Esto permite comprender las relaciones uno a uno entre tablas.
- Comentario: guarda los comentarios de un producto, con un campo content de tipo text [03:06].
- Tag: representa etiquetas asociadas a productos, con un campo name de tipo string [03:35].
Cada ejecución del comando genera un archivo de entidad independiente dentro del proyecto, pero ninguna tabla existe todavía en la base de datos.
¿Qué es una migración y cómo se genera?
Una migración es un archivo PHP que contiene el código necesario para transformar tus entidades en tablas reales dentro del sistema de base de datos [04:05]. Es el puente entre la definición de tu código y la estructura física de tu base de datos.
Para generar la migración se ejecuta:
bash
php bin/console make:migration
Este comando analiza todas las entidades creadas y produce un único archivo dentro de la carpeta migrations [04:25]. Al revisar su contenido, se puede observar que incluye instrucciones para crear las cuatro tablas: comentarios, metadatos, productos y etiquetas, cada una con sus respectivos campos y tipos.
¿Cómo se ejecuta la migración para crear las tablas?
Generar la migración no crea las tablas automáticamente. Para materializar esas instrucciones en tablas reales, se utiliza el comando [05:05]:
bash
php bin/console doctrine:migrations:migrate
El sistema solicita confirmación antes de ejecutar. Una vez aceptado, Doctrine convierte el código PHP de la migración en sentencias SQL que crean las tablas en la base de datos.
Al actualizar el gestor de base de datos, las tablas aparecen con la estructura definida:
- Comentarios: campo id y content.
- Metadata: campos id, code y content.
- Productos: campos id, name y summary.
- Tags: campos id y name.
¿Cuál es el flujo completo para definir tablas en Symfony?
El proceso sigue tres pasos bien definidos:
- Crear la entidad con
make:entity, definiendo nombre, tipos y restricciones de cada campo.
- Generar la migración con
make:migration, que traduce las entidades a código SQL encapsulado en PHP.
- Ejecutar la migración con
doctrine:migrations:migrate, que aplica los cambios en la base de datos real.
Este flujo garantiza que la estructura de datos se mantenga versionada y reproducible. Cada cambio en las entidades puede generar una nueva migración, lo que facilita el control de versiones de tu esquema de base de datos.
La separación en distintas tablas como productos, metadatos, comentarios y etiquetas permite estudiar cómo funcionan las relaciones entre tablas, un concepto fundamental para construir aplicaciones robustas. ¿Ya has trabajado con relaciones entre entidades en tus proyectos? Comparte tu experiencia en los comentarios.