Guía de Inicio Rápido para Symfony: Creación de un Proyecto y Configuración de la Base de Datos

Angela GM
4 min readOct 16, 2023

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

Ejemplo de relación de tablas

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.

--

--