logo cosasdedevs
Parte 1: Cómo crear una webapp con Symfony 6

Parte 1: Cómo crear una webapp con Symfony 6



My Profile
Ene 31, 2023

En este tutorial vamos a ver como crear una web completa y paso a paso con el Framework de Symfony 6 y PHP 8.1.

👋 ¡Hola! Cuanto tiempo sin escribir nada. Estos meses me los he tomado de relax en cuanto al blog (que en el curro para nada, ahí si me tocó pringar menos en las vacaciones de navidad 😅) y ahora que he recargado pilas he decidido escribir sobre Symfony.

He tenido una relación de amor-odio durante muchos años con Symfony (mi primera web fue creada con Symfony 2) pero viendo las posibilidades que ofrece he decidido darle otra oportunidad y aquí estamos 🤷‍♂️.

Requisitos 🤔

Para este tutorial vamos a utilizar la versión de Symfony 6.2.* por lo que necesitaremos tener instalado PHP 8.1 y Composer en nuestro PC.

También necesitaremos el CLI de Symfony para crear la estructura del proyecto. En el siguiente enlace se explica como instalarlo.

https://symfony.com/download

Como también tocaremos algo de front, vamos a necesitar instalar Node y su gestor de paquetes npm el cual viene integrado con la instalación de Node.

https://nodejs.org/es/download/

Para la base de datos yo voy a utilizar MySQL, pero puedes utilizar la que quieras, eso sí, puede que cambien algunas cosas en las configuraciones y tengas que investigar por tu cuenta más allá de este tutorial.

Con esto listo ya podemos empezar 🤘.

Crear un proyecto Web con Symfony

Para crear un proyecto Web en Symfony, abrimos la consola, vamos al directorio donde queramos alojar el proyecto y lanzamos el siguiente comando:

symfony new blog_symfony --version="6.2.*" --webapp

El comando "symfony new" creará una carpeta llamada blog_symfony (podéis cambiar blog_symfony por el nombre que queráis).

Después como opciones indicamos la versión con la que vamos a trabajar (si no añadimos esta opción, instalará la última estable).

Por último añadimos la opción --webapp, lo que hará que se instalen todas las dependencias necesarias para este tipo de proyecto.

Estructura de un proyecto en Symfony 6

Una vez lanzado el comando visto anteriormente, se generará una carpeta con el nombre que le hayamos dado. Dentro de ella encontraremos varios directorios y archivos en el que os voy a explicar cuáles son los más importantes y que contienen.

  • bin/: Contiene los archivos para ejecutar los comandos de Symfony, como crear un controlador, entidad, etc. También podremos crear nuestros propios comandos.
  • config/: Contiene todos los archivos de configuración del proyecto, como parámetros, servicios y rutas.
  • migrations/: En esta carpeta se almacenarán todas las modificaciones que realicemos en la base de datos.
  • src/: Contiene el código fuente de la aplicación, incluyendo controladores, entidades y vistas.
  • public/: Guarda archivos estáticos como imágenes, JavaScript y hojas de estilo, además del punto de entrada a nuestro sitio web.
  • templates/: Contiene las plantillas Twig que se utilizan para generar la salida HTML dinámicamente.
  • var/: Contiene archivos generados automáticamente como cachés y logs.
  • vendor/: Contiene los paquetes de terceros utilizados por el proyecto.
  • .env: Contiene las variables de entorno del proyecto.
  • composer.json: Contiene las dependencias del proyecto y configuraciones adicionales para Composer.
  • symfony.lock: Contiene la versión específica de Symfony y las dependencias utilizadas en el proyecto.

Levantar el proyecto en local 🚀

Ahora que ya hemos explicado el contenido, vamos a ver como levantar el proyecto en nuestro PC. Para ello, vamos a la terminal y en el directorio raíz del proyecto, lanzamos el siguiente comando:

symfony serve

Al ejecutar el comando se levantará el proyecto y podremos acceder a él desde el navegador en la siguiente ruta:

http://127.0.0.1:8000 

Cómo solucionar el error del puerto ocupado 🚩

Alguna vez me ha pasado que ha apagado mi PC sin parar el proyecto. Al iniciar mi máquina e intentar levantar el proyecto de nuevo, me ha aparecido un mensaje diciendo que el puerto ya está ocupado. Esto lo he solucionado con el siguiente comando:

symfony server:stop

Este comando parará el servicio si se quedó en el limbo y ya podremos levantarlo de nuevo 💪.

Consola de Symfony 💻

Symfony nos provee de un sistema de línea de comandos que nos servirá de ayuda a la hora de crear controladores, entidades, actualizar la base de datos y muchas más cosas. En los próximos tutoriales nos valdremos mucho de estos comandos para trabajar con nuestro proyecto, así que si queréis echarle un vistazo a todos los comandos disponibles, desde la terminal id al directorio raíz del proyecto y lanzar el siguiente comando:

php bin/console list

Al lanzarlo, podremos ver un listado con todos los comandos y una breve descripción de los mismos.

Y listo, con esto podemos dar por finalizado este tutorial. En el próximo tutorial que podéis ver en el siguiente link, veremos como crear la conexión a la base de datos, tablas y entidades para trabajar con nuestros datos en el proyecto 💪.

También os dejo el enlace al repositorio hasta este punto por si tenéis cualquier problema https://github.com/albertorc87/blog-symfony-tutorial/tree/crear-web-app-symfony-6

Espero que este post te ayude y como siempre, te recomiendo seguirme en Twitter para estar al tanto de los nuevo contenido. Ahora también puedes seguirme en Instagram donde estoy subiendo tips, tutoriales en vídeo e información sobre herramientas para developers.

Por último os dejo mi guía para aprender a trabajar con APIs donde explico todo el funcionamiento de una API, el protocolo HTTP y veremos como construir una API con arquitectura REST.

Nos leemos 👋.

3658 vistas

🐍 Sígueme en Twitter

Si te gusta el contenido que subo y no quieres perderte nada, sígueme en Twitter y te avisaré cada vez que cree contenido nuevo 💪
Luego ¡Te sigo!

Nos tomamos en serio tu privacidad

Utilizamos cookies propias y de terceros para recopilar y analizar datos sobre la interacción de los usuarios con cosasdedevs.com. Ver política de cookies.