Guía de Inicio Rápido para Symfony: Creación de un Proyecto y Configuración de la Base de Datos
Symfony es un popular framework PHP que sigue una arquitectura Modelo-Vista-Controlador (MVC) para el desarrollo web. En esta guía, te llevaré a través de los pasos necesarios para crear un nuevo proyecto Symfony, configurar la base de datos y crear entidades con relaciones.
Requisitos previos
Antes de empezar, asegúrate de tener instalados los siguientes componentes:
- XAMPP: Un entorno de desarrollo que incluye Apache, MySQL y PHP.
- Composer: Un gestor de dependencias para PHP.
- Symfony CLI (opcional pero recomendado): Una herramienta que facilita la gestión de proyectos Symfony desde la terminal.
Estructura de Carpetas en Symfony
La estructura de carpetas en Symfony sigue una arquitectura MVC (Modelo-Vista-Controlador), lo que significa que el código se organiza en diferentes carpetas según su función. Algunas de las carpetas más importantes son:
- config: Contiene los archivos de configuración del proyecto, como las rutas, la configuración de la base de datos y los servicios.
- src: Aquí se encuentra el código fuente de la aplicación, incluyendo los controladores (Controller), modelos (Entity) y vistas.(Repository, consultas a la base de datos)
- templates: Contiene las plantillas de vistas escritas en Twig, el motor de plantillas de Symfony.
- public: Carpeta accesible desde el navegador que almacena archivos estáticos como imágenes, hojas de estilo y scripts JavaScript.
- vendor: Contiene las dependencias del proyecto, que son las bibliotecas y paquetes de terceros instalados a través de Composer.
- bin: Contiene el archivo “console”, que se utiliza para ejecutar comandos en la terminal, como la ejecución de tareas programadas o la ejecución de comandos personalizados.
- var: Almacena la caché y registros (logs).
Paso 1: Crear el Proyecto Symfony
Para crear un nuevo proyecto Symfony, ejecuta el siguiente comando:
composer create-project symfony/skeleton nombre_proyecto
Sustituye “nombre_proyecto” por el nombre que desees para tu proyecto.
Paso 2: Configurar la Conexión a la Base de Datos
Symfony utiliza un archivo .env
para configurar la conexión a la base de datos. Abre el archivo .env
en la raíz de tu proyecto y configura la conexión MySQL:
DATABASE_URL="mysql://nombre_usuario:contraseña@127.0.0.1:3306/nombre_base_datos?serverVersion=8&charset=utf8mb4"
Asegúrate de proporcionar el nombre de usuario, contraseña, nombre de la base de datos y otros detalles necesarios.
Paso 3: Agregar el Archivo .env
al .gitignore
Es importante mantener la información sensible de la base de datos, como contraseñas, fuera de tu repositorio. Añade el archivo .env
al archivo .gitignore
para asegurarte de que no se suba al control de versiones.
Paso 4: Instalar Doctrine
Doctrine es un paquete esencial para trabajar con la base de datos en Symfony. Instálalo ejecutando el siguiente comando:
composer require symfony/orm-pack
Paso 5: Iniciar el Servidor
Puedes iniciar un servidor web de desarrollo para tu proyecto Symfony ejecutando:
symfony serve
Paso 6: Crear la Base de Datos
Utiliza el siguiente comando para crear la base de datos:
php bin/console doctrine:database:create
Puedes ver una lista de todos los comandos disponibles utilizando:
php bin/console list
Paso 7: Crear Entidades
Symfony usa entidades para representar las tablas de la base de datos. Puedes crear una entidad utilizando el siguiente comando:
php bin/console make:entity
Este comando te guiará a través del proceso de definir los campos y tipos de datos para tu entidad.
Debes responder una serie de preguntas y se han de ir creando cada uno de los campos con el tipo de dato (string, number, datatime, boolean, etc… ), si puede ser nulo o no.
Recuerda, el campo ID se genera automáticamente, no se ha de crear
Paso 8: Establecer Relaciones
Si necesitas definir relaciones entre tus entidades, puedes usar el comando make:entity
nuevamente. Por ejemplo, si deseas una relación de uno a muchos entre las entidades "Tipo" y "Proveedor", Symfony te guiará a través del proceso.
php bin/console make:entity Tipo
Preguntará por el tipo de dato, y le tenemos que decir OneToMany (de uno a muchos), en este caso.
Preguntará con que entity lo queremos relacionar, en este caso con Proveedor, y como queremos llamar al campo relacionado en el entity Proveedor, en este caso tipo_id
Paso 9: Aplicar Cambios en la Base de Datos
Para que los cambios en las entidades se reflejen en la base de datos, ejecuta:
Ahora nos preguntará por el tipo de dato, y le tenemos que decir OneToMany (de uno a muchos)
Nos preguntará con que entity lo queremos relacionar, en este caso con Proveedor.
Ahora nos pregunta como queremos llamar al campo relacionado en el entity Proveedor, en este caso tipo_id
php bin/console doctrine:schema:update --force
Con esto, tus entidades y relaciones se verán reflejadas en la base de datos.
Paso 10: Crear Controladores
Para crear controladores que gestionen las rutas y la lógica de tu aplicación, utiliza el siguiente comando:
php bin/console make:controller
Con esto, habrás creado un proyecto Symfony básico, configurado la base de datos y definido tus entidades. Ahora estás listo para desarrollar tu aplicación web utilizando Symfony.
PD: Este tutorial surgió porque tuve que realizar una prueba técnica con Symfony para una oferta de trabajo, pero en ese momento no estaba familiarizada con Symfony. Decidí crear esta guía básica para mí misma, con la intención de tener una referencia para consultas futuras si fuera necesario. Ahora, quiero compartirlo con todo el mundo por si puede ser útil para alguien más.
Puedes consultar el repositorio de Github con la prueba completa desde aquí.
¡Espero que esta guía te haya sido útil para empezar con Symfony! Si tienes alguna pregunta o necesitas más información sobre algún aspecto en particular, no dudes en preguntar.