logoImagina
iconCurso
Te recomendamos nuestro curso de Symfony 6
Descubre el curso de Symfony 6
Ir al curso

Tutorial de Symfony: Guía de Primeros Pasos

iconImage
Escrito por Equipo de Imagina
Actualizado el 25-06-2024
Duración: 30 min

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.

Desarrolladora web usando el framework Symfony

¿Qué es Symfony?

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).

Características principales de Symfony

Las características de Symfony son muchas, pero aquí destacaremos las más significativas que lo diferencian de otros frameworks en el mercado:

  • Flexibilidad: Una de las grandes ventajas de Symfony es su estructura modular, que permite a los desarrolladores usar componentes de manera individual o conjunta según las necesidades del proyecto.
  • Interoperabilidad: Symfony está diseñado para trabajar con otras librerías de software, lo cual permite integrar y reutilizar tu código de una manera efectiva y eficiente.
  • Rendimiento: A pesar de ser uno de los frameworks más completos, Symfony es conocido por su capacidad de ofrecer un alto rendimiento en aplicaciones de cualquier tamaño, desde pequeñas aplicaciones hasta grandes aplicaciones empresariales.
  • Seguridad: Symfony ofrece una amplia gama de herramientas y componentes que ayudan a gestionar la seguridad de las aplicaciones, garantizando que estas sean seguras y estables.
  • Testabilidad: Symfony facilita la implementación de pruebas unitarias y funcionales, asegurando que cada parte del código pueda ser testada de manera independiente.

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.

¿Cómo crear un Proyecto en Symfony? Tutorial Completo

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.

Paso 1: Instalación de Composer

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.

Instalador de Windows de Composer desde la página web oficial

Ahora, ejecutamos el instalador y lo instalamos como lo haríamos con cualquier programa.

Instalador de Composer

En caso de no utilizar ningún proxy, dejamos esto en blanco.

Ajustes de Proxy en el instalador de Composer

Por último hacemos clic en “Install”.

Botón de instalación de Composer

Y nos saldrá esta imagen, que indica que se ha instalado correctamente.

Instalación de Composer terminada

Finalmente para verificar que todo ha ido bien, nos vamos a la terminal (cmd) y tecleamos el siguiente comando: composer -version.

Paso 2: Instalación de PHP

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:

  • go-pear.bat: El script de configuración de PEAR.
  • php-cgi.exe: El ejecutable CGI que se puede utilizar cuando se ejecuta PHP en IIS a través de CGI o FastCGI.
  • php-win.exe: El ejecutable para la ejecución de scripts en PHP sin necesidad de utilizar una ventana de línea de comandos de PHP.
  • php.exe: El ejecutable para la ejecución de scripts PHP dentro de una interfaz de línea de comandos (CLI) de PHP.
  • php5apache2_2.dll: Apache 2.2.X module.
  • php5apache2_2_filter.dll: Apache 2.2.X filter.

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.

1php -v

Nos debe salir algo así en consola:

Salida por consola del comando

Paso 3: Creación del proyecto

Para crear nuestro primer proyecto en Symfony, podemos hacerlo con el siguiente comando:

1composer create-project symfony/website-skeleton my-project

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:

Salida del comando en la consola

Ahora para ejecutarlo debemos acceder a la carpeta donde hayamos creado el proyecto e instalar el servidor de  esta forma:

1cd my-projectcomposer require server --dev

Nos saldrá algo como esto:

Servidor instalado mostrado en consola

Por último cuando termine, solo nos queda ejecutar el servidor:

1php bin/console server:run

Nos saldrá de esta forma:

Servidor iniciado en la consola

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:

Vista inicial de la aplicación en el navegador

Paso 4: Ampliación del proyecto

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:

Vista del navbar desde el navegador
Descubre la formación a tu medida
Rellena el formulario para obtener más información sobre los cursos.
Tamaño de la empresa *
Términos y condiciones *

Estructura de directorios y su importancia

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:

  • bin/: Contiene los ejecutables del proyecto. Aquí se encuentra el famoso console que te permite interactuar con la aplicación a través de la línea de comandos.
  • config/: Alberga toda la configuración de tu aplicación. Aquí puedes ajustar servicios, paquetes, y rutas.
  • public/: Es el directorio raíz de tu web y donde se encuentra el index.php, el front controller que maneja todas las peticiones HTTP entrantes.
  • src/: El corazón de tu aplicación Symfony. Aquí se almacenan los controladores, modelos, y cualquier otra lógica de negocio.
  • templates/: Contiene las plantillas Twig que definen la capa de presentación de tu aplicación.
  • tests/: Este directorio está destinado para pruebas unitarias y funcionales que ayudan a asegurar que tu código funciona como se espera.
  • var/: Symfony utiliza este directorio para almacenar archivos generados automáticamente como caché y logs.
  • vendor/: Contiene todas las librerías de terceros que tu proyecto depende, gestionadas por Composer.

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.

Rutas y controladores

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.

Definición de rutas en Symfony

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:

  1. Definición de rutas mediante anotaciones: Puedes definir rutas directamente sobre los métodos del controlador usando anotaciones. Por ejemplo:
1 use Symfony\Component\Routing\Annotation\Route; 2 3 class BlogController 4 { 5 /** 6 * @Route("/blog/{slug}", name="blog_show") 7 */ 8 public function show($slug) 9 { 10 // ... 11 } 12 }

Esta ruta responderá a cualquier URL que coincida con /blog/{slug} y pasará el slug como parámetro al método show.

  1. Configuración de rutas en archivos YAML: También puedes definir rutas en un archivo de configuración YAML:
1# config/routes.yaml 2blog_show: 3 path: /blog/{slug} 4 controller: App\Controller\BlogController::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.

Creación y configuración de controladores

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:

  1. Creación de un controlador básico: Un controlador puede ser tan simple como una clase con un método que devuelve una respuesta. Por ejemplo:
1namespace App\Controller; 2 3use Symfony\Component\HttpFoundation\Response; 4use Symfony\Component\Routing\Annotation\Route; 5 6class BlogController 7{ 8 /** 9 * @Route("/blog/{slug}", name="blog_show") 10 */ 11 public function show($slug) 12 { 13 return new Response("Contenido del artículo: " . $slug); 14 } 15}

Este controlador devuelve una respuesta HTTP directamente, pero en situaciones reales, probablemente renderizarás una plantilla o devolverás un JSON.

  1. Configuración del controlador: Los controladores en Symfony pueden extender de AbstractController, lo que les proporciona métodos útiles para manejar respuestas comunes, acceso a servicios y más:
1use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; 2 3class BlogController extends AbstractController 4{ 5 public function show($slug) 6 { 7 return $this->render('blog/show.html.twig', ['slug' => $slug]); 8 } 9}

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.

Aprender Symfony desde cero

¡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.

Descubre la formación a tu medida
Rellena el formulario para obtener más información sobre los cursos.
Tamaño de la empresa *
Términos y condiciones *
Tutoriales relacionados
¿Qué es Symfony? El Mejor Framework PHP
¿Por qué elegir Symfony para tu próximo proyecto web? Seguridad, velocidad y flexibilidad son solo el inicio de lo que este framework PHP tiene para ofrecer
React vs Angular: ¿Cuál es Mejor?
.Descubre las diferencias clave entre React y Angular para determinar cuál es mejor para tus necesidades de desarrollo
Cómo hacer Animaciones usando CSS3 transitions
Transforma tu web con animaciones deslumbrantes. Descubre cómo crear efectos cautivadores con CSS3 transition. ¡Haz clic y sorpréndete!
Tutorial ASP.NET Core, aprende desde cero
Domina ASP.NET Core rápidamente con nuestros consejos prácticos. Aprende a construir aplicaciones web poderosas en menos tiempo. ¡Explora ahora!
Tabla de contenido
¿Qué es Symfony?
Características principales de Symfony
¿Cómo crear un Proyecto en Symfony? Tutorial Completo
Paso 1: Instalación de Composer
Paso 2: Instalación de PHP
Paso 3: Creación del proyecto
Paso 4: Ampliación del proyecto
Estructura de directorios y su importancia
Rutas y controladores
Definición de rutas en Symfony
Creación y configuración de controladores
Aprender Symfony desde cero
Descubre la formación a tu medida
Rellena el formulario para obtener más información sobre los cursos.
Tamaño de la empresa *
Términos y condiciones *