Quiero aprender Symfony ¿Por dónde empiezo?

symfony.jpg
Solucionex
04
Mar 21

Posiblemente es la piedra sobre la que se construyen la mayor parte de frameworks y aplicaciones modernas PHP. Laravel, Drupal, Prestashop y próximamente SuiteCRM, hacen uso de alguno de los componentes de Symfony, el más complejo framework PHP hasta la fecha. Es equivalente a ExpressJS, actualmente el estándar de facto en cuanto a frameworks backend en el ecosistema Node.js.

Tal y como hemos hecho con Drupal en un post anterior, vamos a plantear un itinerario formativo accesible a todos los públicos y bolsillos, teniendo en cuenta que Symfony es una herramienta mucho más compleja que Drupal, simplemente por el hecho de que te obliga a tener un conocimiento más profundo de PHP y de ciertos patrones de diseño que en el caso de Drupal.

Pero ¡Quieto parao! No hay que asustarse. Justo ahora, aprovechando que hace poco más de un año se liberó la quinta versión del framework, es el momento perfecto para aprovechar el momento, dejarnos llevar por la inercia del acontecimiento y aprovechar todo el material de formación lanzado para acercar el producto a los desarrolladores.

 

Sensiolabs - How to learn Symfony?

 

¿Cómo aprender Symfony?

Personalmente, me resulta muy difícil definir una ruta para llegar a ser un maestro en Symfony simplemente con estudio. Como todo, el propio camino que te marques y los proyectos a los que accedas te requerirán cada vez más esa maestría a la que todos deseamos llegar. Pero bueno, como yo mismo sigo inmerso en ese camino, lo único que puedo hacer por ti es vestirme de Bruja buena del sur y mostrarte el camino de baldosas amarillas...

Saca papel y lápiz para apuntar. Para aprender Symfony sobre todo te vas a apoyar en tres fuentes de conocimiento:

 

Empezamos por lo básico

Este bloque de requisitos básicos es común a la mayoría de tecnología de desarrollo web, como podréis comprobar con los que publiqué en el post sobre Drupal.

  • El idioma anglosajón a nivel técnico, sobre todo leído y escuchado, es un "must have" en esta industria.
  • Tener una buena base de PHP y sobre todo del Paradigma Orientado a Objetos.
  • En el caso de que queráis tener un perfil fullstack y no sólo centraros en un perfil backend, recomendaría tener una base de HTML y CSS.
  • Como siempre digo, la consola es tu amiga. En este caso también te pelearás con el gestor de paquetes de PHP, Composer y con el CLI de Symfony.

Recursos formativos gratuitos:

Una vez te sientas en tu salsa trabajando con los anteriores lenguajes y herramientas, entramos en faena.

 

Empezamos con Symfony

En este nivel aterrizarás en el framework, te encontrarás con conceptos como: Patrón MVC, Routing, Controllers, Requests, Responses, Annotation, CLI, Profiler y su barra de herramientas, el motor de plantillas Twig, Assets, Servicios, Webpack, Bundles... y sobre todo con cómo todos estos conceptos se relacionan entre sí para sacarle el mayor partido a Symfony.

Recursos formativos gratuitos:

 

Creciendo en Symfony

A partir de este punto empieza lo realmente complejo, al menos para mí, y es que entre el hecho de que Symfony es un framework amplio no acostumbrado a marcar un camino dirigido al desarrollador y que familiarizarte con el uso de los múltiples componentes del framework, así como la cantidad de bundles desarrollados por la comunidad, hace que sea muy complejo avanzar si no accedes a problemas complejos que necesiten soluciones complejas, por lo que desde este momento tu imaginación y la ayuda que encuentres en la comunidad serán clave de éxito en tu mejoría como desarrollador Symfony.

Por fortuna tenemos el libro de Symfony 5, planteado como un proyecto desde cero que te ayudará a pensar y a plantear soluciones como lo haría, en este caso, el creador de Symfony. En este libro podrás aprender a cómo usar:

  • Git Flow
  • Bundle EasyAdmin
  • Events
  • Events Subscriber
  • Doctrine
  • Formularios avanzados
  • Uso de APIs
  • Testing haciendo uso de Fixtures
  • Asincronía con el componente Messenger y RabbitMQ
  • Desarrollo de flujos con el componente Workflow
  • Notificaciones con correos con el componente Mailer
  • Optimización de Caché
  • Integración con la herramienta CRON
  • Notificaciones a nivel aplicación con el componente Notifier
  • Desarrollo de APIs con API Platform
  • Contenerización con Docker

Todo ello avanzando paso a paso construyendo el código de una aplicación aparentemente sencilla.

 

Creciendo en PHP

A la par que crecemos en Symfony, es fundamental crecer también en el lenguaje en el que trabajas y es por ello que hay que conocer PHP en profundidad y estar al día de sus nuevas versiones, por lo que te recomiendo:

 

Formación de pago

Si no te importa pagar para recibir contenido formativo, te recomiendo que te suscribas a:

  • Symfonycasts - La plataforma oficial de screencasts de Symfony, en la que encontrarás tanto formación Symfony como de PHP, Javascript, Vue, React, Testing...
  • Laracasts - La plataforma oficial de screencasts de Laravel, el framework más popular del ecosistema PHP. Personalmente, creo que es la mejor plataforma de formación relacionada con un framework, con un catálogo impresionante nos ofrece formación en Laravel y su múltiple oferta de extensiones, formación en PHP, formación en frameworks CSS y JavaScript, formación en técnicas de desarrollo, Testing, Tooling...

 

Notas del autor

  1. El libro Symfony 5: La Vía Rápida contempla todo un tutorial de un proyecto avanzado, nivel técnico medio-alto, utilizando Symfony 5 pero muy orientado a un escenario real, por lo que su seguimiento puede parecer complejo a primera vista.