Symfony: tutoriales de iniciación

Dejo aquí un repaso guiado sobre las principales herramientas que nos proporciona Symfony. He usado Symfony 4, Symfony Flex, en estos tutoriales ya que acaba de publicarse. Ahora con Symfony Flex podemos prescindir de la mayoría de componentes para arrancar un proyecto nuevo. Esto lo hace más sencillo para iniciarse, para arrancar con cada nuevo proyecto, y también los proyectos corren más rápido y son más ligeros..

Symfony: tutorial 0: preparando el espacio de trabajo

Herramientas para desarrollar en Symfony

Como buen apasionado del desarrollo de aplicaciones web, estaba espectante esperando la nueva versión de Symfony 4. Ahora tenemos una nueva versión orientada a microservicios, en la que te vas construyendo tu propio framework poco a poco, con los componentes que necesites. Esto quiere decir que no te instalas el framework completo cuando empiezas a trabajar, sino que poco a poco vas añadiendo los componentes. Gracias a Composer vas acoplando los componentes, ya sean del propio Symfony, o sean componentes externos al framework. Esto hace a su vez que la curva de aprendizaje no sea tan pronunciada para los novatos..

Seguir leyendo..

Symfony: tutorial 1: extendiendo el ¡hola mundo! y el enrutador de URLs

Symfony 1 el enrutamiento

En este segundo tutorial sobre Symfony, dejo aquí explicado cómo se cargan las URLs. Para esto, tenemos aquí este clásico tutorial al estilo de ¡Hola Mundo! un poco azucarado. Lo primero en lo que hay que pensar son los puntos de entrada a la web: qué URLs vamos a tener y de qué forma, qué prefijos y sufijos van a tener, cómo se va a dividir la web desde el punto de vista del visitante que va viendo las URLs.

Todo esto es lo que llamaremos el enrutamiento de la web. Es decir, todas las URLs de entrada a la web pasan por un enrutador. Este enrutamiento se encargará de saber lo que tiene que hacer, llevando la visita al controlador que corresponda para hacer lo que tenga que hacer, y devolver al visitante la respuesta con la página que corresponda..

Seguir leyendo..

Symfony: tutorial 2: los comandos de consola

Symfony Flex comandos

Una respuesta a porqué Symfony es tan productivo son los comandos de consola. Si alguien dice que usar Symfony es reinventar la rueda, que siempre es mejor modificar un CMS.. es que no sabe de lo que está hablando, y lo que se está perdiendo.

Con simples comandos podemos crear un proyecto nuevo, añadir nuevos componentes, lanzar un servidor de pruebas, chequear las URLs, crear entidades que vamos a guardar en base de datos, probar el envío de emails. También podemos modificar las tablas de datos, añadir nuevos elementos, editar los existentes, actualizar la base de datos, preparar nuevos elementos para almacenar, generar pantallas de listado de datos, ediciones de datos, borrados o creaciones. Generamos formularios automáticamente, con recepción de sus datos y guardado de dichos formularios en bases de datos. Podemos importar una base de datos de otro proyecto, generando todo el código fuente de una aplicación web que consulte los datos de dicha BD en apenas un rato. Podemos crear controladores, estructurando todas las zonas de la web, con sus plantillas, rutas, y URLs en poco tiempo. Y mucho más..

Seguir leyendo..

Symfony: tutorial 3: los modelos, entidades

Symfony tutorial 3 Doctrine

Recorriendo todas las funcionalidades de Symfony Flex, traigo de nuevo otro HOWTO para trabajar con el guardado de los datos. Symfony basa el guardado de los datos, la persistencia de los datos, en Doctrine. Es decir, tenemos un módulo llamado Doctrine, mejor dicho varios, que te independizan de la base de datos añadiendo una capa intermedia entre los controladores, plantillas, servicios.. de tu aplicación Symfony y la base de datos. En esta capa intermedia se definen lo que se llaman entidades, y Doctrine se encarga de hacer todo..

Seguir leyendo..

Symfony: tutorial 4: el día a día con las bases de datos

Symfony4 Doctrine Migrations

Otra vez más traigo de nuevo otro HOWTO, esta vez trabajando día a día con bases de datos en Symfony Flex, Symfony 4. En el tutorial anterior empecé con cómo empezar a crear una base de datos. Ahora lo extiendo ya que trabajar con la base de datos es un tema muy extenso.

En este minitutorial me centro más en cómo modificar la base de datos, cómo es el día a día. Cómo desplegar estos cambios en producción sin temor a dejar sin servicio todo el sistema por haber hecho un cambio inesperado. Es importante que tengas un plan B por si lo último modificado rompe producción, y así puedas hechar atrás los últimos cambios de la base de datos..

Seguir leyendo..

Symfony: tutorial 5: los controladores

Symfony tutorial controladores

Extendiendo el tutorial 1 sobre enrutamiento anterior, seguimos hoy con los controladores, un paso más allá. En Symfony Flex, Symfony 4, se ha mejorado de nuevo otra de sus herramientas, el enrutamiento. Todo el enrutamiento se configura dentro de los controladores con las últimas versiones. Todo, URLs, parámetros, tipo de petición, se puede ya configurar dentro de los mismos ficheros de controladores. Esto es realmente cómodo en el día a día.

Además, estas últimas versiones del enrutador de Symfony, según rankings independientes a Symfony, disponemos de un enrutamiento 75 veces más rápido que en la versión anterior. Es el enrutador PHP más rápido que hay, de nuevo, otro referente en este mundillo..

Seguir leyendo..

Symfony: tutorial 6: las vistas

Symfony tutorial templating

Recordando mientras que nos actualizamos con Symfony, traigo aquí otro code-kata o howto, esta vez, sobre plantillas. El sistema de plantillas de Symfony Flex, Symfony 4, desde hace tiempo que se basa en Twig. Es una de las mejoras cosas que le han pasado al mundo del PHP con respecto al desarrollo del frontend. Twig viene a añadir una sintaxis nueva: una serie de instrucciones a las plantillas: extends, block, for, if, etcétera..

Por un lado, Twig simplifica mucho el código fuente, queda mucho más limpio. Si eres un frontender, o un desarrollador web, te hará la vida mucho más fácil cuando te pongas a escribir códigos fuentes. Por otro lado, te ayuda a reutilizar las plantillas, no teniendo nunca que repetir el mismo código en plantillas distintas. Si estás repitiendo un código en una plantilla Twig, es que hay que refactorizar y reutilizar..

Seguir leyendo..

Symfony: tutorial 7: depurando todo con lupa, el profiler

Symfony web profiler

En este post traigo una review del perfilador de Symfony Flex, Symfony 4, el profiler. Es una gran herramienta de desarrollo web que nos brinda Symfony. Podemos ver muchos datos internos de cómo funciona todo por dentro: la petición y respuesta, rendimiento, envío de formularios, validaciones, datos de las excepciones, logs… pasando por Doctrine, enrutamiento..

Es decir, con el perfilador, cuando vayamos construyendo la aplicación web, tendremos una cantidad ingente de información para arreglar o mejorar todo. Podemos investigar con lupa todos los entresijos de lo que ocurre desde que se hace la petición desde el navegador del visitante, hasta que el servidor ha procesado la respuesta, construyéndola y devolviendo al mismo navegador dicha respuesta para que se pinte..

Seguir leyendo..

Symfony: tutorial 8: los assets

Symfony Assets

Otro día más, otro post más, ahora repasando en Symfony 4 cómo incluimos los ficheros en las páginas web. A saber, los assets son los ficheros CSS, Javascript e imágenes que usamos en el front-end. Ahora se ha simplificado un poco más todo el manejo de éstos.

Podemos evitarnos el cacheado en los navegadores dándoles un número o nombre de versión a todos los assets. Así con cada despliegue, configuramos un número nuevo de versión de assets, y se le añadirá la coletilla a los ficheros assets incluidos en toda la web. Esto forzará a los navegadores a descargarse la nueva versión de estos assets..

Seguir leyendo..

Symfony: tutorial 9: los entornos, y las configuraciones

Symfony entornos y configuraciones

Continuando con el repaso de Symfony 4, Symfony Flex, sigo con las configuraciones y entornos de ejecución. Como buena estrategia de desarrollo, tenemos que tener presente el establecer varios entornos en los que vamos a trabajar en los proyectos sobre Symony. Es decir, por defecto, Symfony te invita a usar 3 entornos:

  • Desarrollo, cuyo nombre en clave es dev, del inglés develop.
  • Pruebas, cuyo nombre es test, que podemos correr en local o en un entorno con CI y CD.
  • Producción, con nombre en clave prod, que será en el servidor en Internet, aunque podemos simularlo en local también.

Seguir leyendo..

Symfony: tutorial 10: los servicios, la inyección de dependencias

Los servicios, la inyección de dependencias

Continuando con la actualización a Symfony 4, repasando de parte a parte todas las mejoras que nos trae ésta nueva versión, llegamos al contenedor de servicios. Ésto es la madre del cordero de Symfony, tenemos un contenedor de servicios, muy rápido, en donde vamos a organizar nuestra aplicación web lo mejor posible.

Los servicios simplemente son clases de PHP que podrás utilizar mediante el contenedor de servicios en todas las partes de tu aplicación Symfony. Si no estás usando esta inyección de dependencias, y creando tus propios servicios para organizarlo todo.. con este post lo vas a ver muy sencillo.

Seguir leyendo..

Symfony: tutorial 11: los formularios

Symfony 4, el manejo de formularios

Otra de las mejores cosas que tiene Symfony es el manejo y creación de los formularios. Podríamos seguir creando formularios a la antigua, mediante HTML, construyendo poco a poco dichos formularios. Pero si quieres ser realmente productivo construyendo aplicaciones que gestionan mucha información, interactuando con los usuarios, deberías de usar ésta herramienta y aprovechar lo que Symfony nos ofrece.

Es decir, tenemos un componente de Symfony que automatiza gran parte de la creación, y recepción de los datos de formularios. Les puedes añadir fácilmente tokens de seguridad, generar formularios responsivos con Bootstrap de forma automática, generarlos automáticamente a partir de la definición de la base de datos, y un largo muy largo etcétera.

Seguir leyendo..

Symfony: tutorial 12: los emails

Symfony enviando emails

Ya estoy por aquí de nuevo, escribiendo otro tutorial, code-kata o howto.. mientras que me pongo al día repasando sobre Symfony 4, y revisando hoy cómo se envían los correos electrónicos.

Symfony nos recomienda que usemos el popular componente SwiftMailer, que podemos incoporar a nuestros proyectos con un simple comando de Composer. Desde una web tenemos varias formas de enviar correos, pero pienso que la forma más profesional es usar SMTP, así te independizas del servidor donde corre tu web, desacoplas aplicación web del servidor de correo.. pudiendo enviar el correo electrónico mediante casi cualquier servidor estándar de correo electrónico.

Seguir leyendo..

Symfony: tutorial 13: enganchándonos a los eventos

Heart beat

Siguiendo con la puesta al día que llevo con Symfony 4 y Flex, he llegado a los eventos. En el proceso de una petición HTTP al servidor, en Symfony ocurren muchas cosas. Durante ese proceso, se van ejecutando una serie de tareas en orden. A la vez que se procesan esas tareas, se van disparando una serie de señales. Estan señales definen los eventos. Y a su vez podemos engancharnos a estas señales para personalizar el funcionamiento de la aplicación web.

Es decir, cuando un navegador hace una petición a un proyecto web Symfony, éste la recibe con el fichero public/index.php y comienza la ejecución de todo el framework junto con todo lo que hayamos construido, además de todos los componentes extra que le hayamos instalado. Ésta ejecución se hace en perfecta armonía, es una buena forma de comunicar componentes de Symfony entre sí, con los nuevos componentes que hayamos instalado, o para personalizar el comportamiento de nuestra aplicación.

Seguir leyendo..

Symfony: tutorial 14: navegando con DomCrawler, BrowserKit y CssSelector

Symfony navegando con BrowserKit and DomCrawler

Hoy les traigo otro tutorial sobre Symfony 4 y Symfony Flex. Siguiendo con la puesta al día que llevo con Symfony 4, hoy llego a cómo navegar por las páginas web. Es decir, los fundamentos de cómo utilizar el DomCrawler, el BrowserKit y el CssSelector de Symfony.

Esto puede servir para dos cosas. La primera utilidad es para comprobar que el proyecto en el que estamos trabajando funciona como debe hacer. Podemos automatizar pruebas funcionales navegando por el proyecto, comprobando que los resultados son los esperados, mientras que desarrollamos y antes de que llegue a producción ningún fallo. La segunda utilidad es para navegar por páginas web remotas que estén en servidores remotos, no en local. Quizá necesitamos hacer comprobaciones en producción, o puede que necesitemos obtener contenidos, información relevante, o ficheros remotos alojados en páginas web mediante el protocolo HTTP que necesitemos recoger por alguna razón. És decir, la segunda utilidad es para conectar tu proyecto con sistemas informaticos remotos mediante el protocolo HTTP.

Seguir leyendo..

Symfony: tutorial 15: los tests automáticos, funcionales y unitarios

Symfony: tutorial 16: la seguridad

Symfony: tutorial 17: las variables de sessión

Symfony: tutorial 18: trabajando con el sistema operativo, Process

Symfony: tutorial 19: Internacionalizando, el Locale

Symfony: tutorial 20: terminando y algunos bundles interesantes

Compartir..