En el mundo del desarrollo web, tener a mano un framework robusto y flexible es esencial para construir aplicaciones web complejas y eficientes. Symfony, uno de los frameworks más populares de PHP, se destaca por su capacidad para acelerar la creación y el mantenimiento de aplicaciones web.
A lo largo de este tutorial, exploraremos las capacidades fundamentales de Symfony, proporcionando una guía detallada para que incluso los principiantes puedan aprender symfony desde cero.
Symfony es un framework de desarrollo web creado para desarrolladores que necesitan una herramienta potente para construir sitios web complejos de manera eficiente. Es conocido por su extensibilidad, adaptabilidad y por ser una herramienta de alto rendimiento que sigue el patrón de diseño MVC (Modelo-Vista-Controlador).
Las características de Symfony son muchas, pero aquí destacaremos las más significativas que lo diferencian de otros frameworks en el mercado:
Estas características hacen de Symfony una opción excelente para desarrolladores que buscan un framework que les permita construir aplicaciones web robustas, seguras y escalables. A lo largo de este artículo, exploraremos cómo podemos aprovechar al máximo estas características mientras desarrollamos nuestra propia aplicación web con Symfony.
Crear tu primer proyecto con Symfony es un paso emocionante hacia el desarrollo de aplicaciones web robustas y escalables. Vamos a guiarte a través de la creación de un nuevo proyecto y la comprensión de la estructura de directorios que Symfony utiliza, destacando la importancia de cada componente.
Composer es un gestor de dependencias que permite mantener las librerías de terceros que utilizamos en un proyecto. Con un pequeño archivo en JSON, se definen estas dependencias y las versiones a utilizar. A través de un comando, Composer descarga, actualiza o elimina todo el código fuente de cada una de estas dependencias y también hace la misma comprobación recursivamente para cada uno de los paquetes descargados.
Para descargar composer nos dirigimos a la página oficial y hacemos clic en el enlace Composer-Setup.exe.
Ahora, ejecutamos el instalador y lo instalamos como lo haríamos con cualquier programa.
En caso de no utilizar ningún proxy, dejamos esto en blanco.
Por último hacemos clic en “Install”.
Y nos saldrá esta imagen, que indica que se ha instalado correctamente.
Finalmente para verificar que todo ha ido bien, nos vamos a la terminal (cmd) y tecleamos el siguiente comando: composer -version.
Para la instalación de PHP en Windows es tan simple como descargar la distribución binaria desde la página oficial y la descomprimimos en el directorio donde vamos a trabajar.
Esta es la lista de los módulos y archivos ejecutables incluidos en la distribución del archivo zip de PHP:
Después de que el contenido del paquete de PHP se haya extraído, debemos copiar el php.ini-production en php.ini dentro de la misma carpeta.
El fichero php.ini le dice a PHP cómo se configura, y cómo trabajar con el ambiente que se ejecuta.
Una vez instalado, podemos comprobar que todo ha ido correctamente mediante el comando.
Nos debe salir algo así en consola:
Para crear nuestro primer proyecto en Symfony, podemos hacerlo con el siguiente comando:
Esto creará un nuevo directorio “my-project”, descargará algunas dependencias e incluso generará los directorios y archivos básicos que necesitamos para comenzar.
Cuando finalice, tendremos algo como esto:
Ahora para ejecutarlo debemos acceder a la carpeta donde hayamos creado el proyecto e instalar el servidor de esta forma:
Nos saldrá algo como esto:
Por último cuando termine, solo nos queda ejecutar el servidor:
Nos saldrá de esta forma:
Una vez configurado todo, ya podemos acceder a la aplicación y visualizar nuestra primera página desde http// localhost:8000/
Si todo ha ido bien, veremos esto:
Para amplíar un poco nuestra página, vamos a crear un controlador con una función que que imprimirá una vista con un navbar.
Un controlador es una función PHP que podemos crear y que se encarga de tomar información desde la petición HTTP y devolver una respuesta como un objeto se Symfony. La respuesta puede ser una página HTML, un documento XML, una imagen, una redirección, etc.
El controlador contiene toda la lógica arbitraria que la aplicación necesita para reproducir el contenido de la página.
En primer lugar creamos un archivo nuevoController.php dentro de my-project/src/Controller con el siguiente contenido:
Para poder ver esta página en el navegador, necesitamos crear una ruta, la cual corresponda a un patrón de URL específico para el controlador. Para ello abrimos el archivo my-project/config/routes.yaml y lo modificamos de la siguiente forma:
Si abrimos ahora la página desde http//localhost:8000/ veremos que la página está en blanco ya que no le hemos añadido ningún contenido.
Así que volvemos al archivo nuevoController.php y le añadimos un sencillo navbar con los menús y el estilo que queramos:
Si nos dirigimos ahora a http// localhost:8000/ podremos observar ya nuestra página:
La estructura de directorios en un proyecto Symfony está diseñada para facilitar el mantenimiento y la escalabilidad. Aquí está una breve descripción de los principales directorios y su propósito:
Entender esta estructura es fundamental porque te permite organizar mejor el código y facilita la colaboración con otros desarrolladores que estén familiarizados con Symfony. Cada parte del directorio tiene un propósito específico que ayuda a separar las responsabilidades dentro de la aplicación, haciendo que el desarrollo y mantenimiento sean más manejables.
Al seguir estos pasos y entender la estructura de Symfony, estarás bien preparado para comenzar a desarrollar aplicaciones complejas y de alto rendimiento con uno de los frameworks más populares del mercado.
En el desarrollo con Symfony, las rutas y los controladores son fundamentales para gestionar la lógica de la aplicación y el flujo de peticiones HTTP. A continuación, veremos cómo definir rutas y crear controladores que respondan a esas rutas de manera efectiva.
Las rutas en Symfony son especificaciones de cómo las diferentes URLs de tu aplicación deben ser manejadas. Aquí te mostramos cómo definir rutas de manera básica:
Esta ruta responderá a cualquier URL que coincida con /blog/{slug} y pasará el slug como parámetro al método show.
Esta configuración hace lo mismo que la anotación anterior pero desde un archivo de configuración, lo que puede ser más claro cuando las rutas son numerosas.
Los controladores en Symfony son clases donde se define la lógica que se ejecuta en respuesta a una petición. A continuación, se describe cómo crear y configurar controladores:
Este controlador devuelve una respuesta HTTP directamente, pero en situaciones reales, probablemente renderizarás una plantilla o devolverás un JSON.
Usando AbstractController puedes hacer uso de render para devolver una vista utilizando el sistema de plantillas Twig, simplificando la respuesta.
Comprender y manejar adecuadamente las rutas y los controladores es esencial para cualquier desarrollador de Symfony, ya que son la base sobre la cual se construye la lógica de navegación y procesamiento de la aplicación.
¡Enhorabuena! Has completado con éxito este tutorial de primeros pasos en Symfony. Ahora tienes los conocimientos fundamentales para comenzar a construir aplicaciones web con Symfony y aprovechar al máximo este potente framework de PHP.
Si estás buscando llevar tu conocimiento de Symfony al siguiente nivel, te invito a considerar nuestro curso especializado en Symfony. Con instrucciones paso a paso, ejercicios prácticos y ejemplos del mundo real, este curso te brindará las herramientas necesarias para dominar Symfony y construir aplicaciones web profesionales de manera eficiente.