Peticiones Ajax con Symfony 3
Peticiones Ajax con Symfony 3
¡INSCRÍBETE A CUALQUIER CURSO CON UN 50% DE DESCUENTO PARA NUEVOS CLIENTES!

Empezamos una serie de tutoriales de Symfony, uno de los frameworks php más potentes que existen y han existido en lo que a php se refiere, reutilizados sus componentes por muchos otros frameworks (laravel) y cms (Drupal), ya muy madurado es uno sino el mejor candidato hoy en día para el desarrollo de aplicaciones web utilizando php.

Poder desarrollar aplicaciones web con Symfony tiene muchas ventajas, ya que realmente tiene muchos componentes que nos van a ayudar en el trabajo del día a día ya instalados por defecto, validación de formularios, acceso a base de datos con Doctrine, motor de plantillas twig, pruebas unitarias con phpunit, una potente consola capaz de realizar una inmensidad de tareas, aplicaciones modulares sin configuración y mucho más que iremos viendo.

Nosotros en este primer tutorial vamos a ver cómo hacer la instalación y hola mundo con Symfony en sistemas Linux, Mac OS y Windows ya que es realmente sencillo.

Para instalar Symfony 3 tenemos muy pocos requerimientos, simplemente una versión PHP 5.4 o superior, con eso tenemos suficiente.

Instalar Symfony en Linux y Mac OS

Simplemente abre una terminal y ejecuta los siguientes comandos.


Eso habrá creado una variable global llamada symfony con la que podremos empezar a desarrollar aplicaciones.

Instalar Symfony en Windows

Lo mismo de antes, abre la terminal y ejecuta los siguientes comandos.


Si quieres puedes crear la variable de entorno symfony apuntando al directorio c:\projects o donde hayas ubicado el instalador.

Primera aplicación con Symfony

Simplemente ejecuta el siguiente comando dependiendo de tu SO, donde blog es el nombre de la aplicación que vamos a crear.


Llegados a este punto tendremos un nuevo directorio en la ubicación donde hayamos ejecutado el anterior comando llamado blog con un montón de archivos y directorios, ¡don’t worry!, no hay que aprender todo de una sentada, nosotros de momento sólo nos vamos a preocupar de sacar un sencillo mensaje al navegador y así entender de forma básica la forma en la que ubica las cosas Symfony.

Levantar una aplicación Symfony

Para ejecutar el servidor y que nuestra aplicación sea levantada simplemente ejecuta los siguientes comandos en tu terminal.


Si ahora abres en el navegador la url http://127.0.0.1:8000 podrás ver el mensaje de bienvenida de Symfony y una toolbar al pie de la página con información sobre el debug de la aplicación.

Hola mundo symfony

Un concepto muy importante que debemos conocer de Symfony son los bundles, los bundles son módulos que nos permiten definir controladores, entidades, vistas, configuración y todo lo que deseemos vincular a una parte de nuestra aplicación, por ejemplo, si deseamos crear una tienda probablemente deseemos crear el bundle ShopBundle y dentro definir toda la lógica de éste, así de sencillo.

Los bundles se guardan en el directorio blog/src y es donde vas a pasar la mayor parte de tu tiempo mientras desarrolles con Symfony.

Primer controlador desde la consola

También es posible crear todos los recursos desde la consola de Symfony de forma muy sencilla, en esta ocasión nosotros vamos a crear un controlador llamado HomeController en el bundle AppBundle que es el que viene por defecto en nuestra aplicación.


Lo anterior habrá creado un nuevo controlador en blog/src/AppBundle/Controller llamado HomeController.php con el siguiente código.


Cómo puedes ver nuestro controlador trabaja bajo el namespace AppBundle\Controller y utiliza con la clausula use dos dependencias, la primera para extender la funcionalidad del controlador y la segunda para poder utilizar el potente sistema de anotación para rutas que utiliza Symfony.

Finalmente tenemos un método llamado indexAction, todos los métodos que deban ser expuestos al cliente deben tener el sufijo Action, en este método utilizamos $this->render para renderizar un archivo de vista, el primer parámetro la ubicación del archivo y el segundo un array de datos para enviar a la vista, así de sencillo.

El archivo de vista asociado a este método está ubicado en blog/src/AppBundle/Resources/views/Home y se llama index.html.twig, ábrelo y verás que la template extiende de otro archivo ubicado en blog/app/Resources/views llamado base.html.twig el cual tiene definidos varios bloques, aunque nosotros sólo definimos los bloques title y body.


Para ver el resultado de nuestro trabajo simplemente abre la url http://127.0.0.1:8000/index en el navegador y podrás ver que todo está funcionando.

Algo en lo que no hemos reparado es en los tests unitarios, al haber creado el controlador desde la línea de comandos, Symfony también ha creado un archivo en blog/src/AppBundle/Tests/Controller llamado HomeControllerTest.php con un pequeño test funcional obteniendo el contenido que la ruta index que hemos definido, para comprobar que todo es correcto vamos a modificar el test y comprobar que contiene lo esperado.


Para procesar únicamente este test ejecuta el siguiente comando.


Si no tienes instalado PHPUnit te recomiendo seguir esta entrada.

Y por ahora eso es todo, espero que te haya parecido interesante y todo te haya funcionado perfectamente, en breve seguiremos viendo más cosas sobre Symfony.