symfony

Recursos de programación de symfony
En esta charla práctica se presentará un pequeño proyecto hecho en Symfony2, totalmente funcional aunque con algunas cosas por mejorar. Primero se crearán algunos tests, que servirán para comprobar que la aplicación sigue funcionando después de cada refactorización. Después, se irá refactorizando el código paso a paso, explicando primero el patrón y después aplicándolo al código.
Annotations es una forma de configurar Symfony y los componentes que lo rodean que está en auge. Y ya que estamos podemos crear nuestras propias anotaciones para configurar nuestros Bundles, componentes, servicios, etc. La idea es mostrar las anotaciones que nos proporciona Symfony y hacer un pequeño workshop de como crear nuestras propias anotaciones.
En esta sesión daremos nuestra idea de qué hay que vigilar para anticiparnos a fallos, o tener un tiempo de respuesta mínimo ante cualquier imprevisto. Jugaremos a tres niveles: infraestructura, logs/código y aspectos funcionales, revisando según diferentes casos de error que se nos han presentado (curiosidades sobre ESI, entre otros) y en qué punto han sido detectados. Antes de esto, situaremos al asistente dando razones de por qué hay que monitorizar, y sobre todo, por dónde se puede empezar, presentando una serie de alternativas o herramientas que hacen muy buenas migas con nuestro querido Symfony, como pueden ser: * Infraestructura: Cacti, Nagios, New Relic... * Logs/código: New Relic (que se puede integrar con symfony), la propuesta de Ofertix, la pareja symfony/monolog... * Funcional: Pingdom, el siempre necesario factor humano, Behat en el servidor... Resumiendo, lo que pretendemos con esta charla, es compartir nuestra experiencia de este último año, comentando anécdotas de errores que hemos tenido/sufrido, cómo los hemos detectamos, la solución y cómo los tenemos acorralados para que no nos vuelvan a pasar, a parte de lo detallado más arriba.
Como ya se puede intuir hablaremos de cómo utilizamos en Bodaclick el potente sistema de formularios de Symfony 2 para mapear las peticiones REST (PUT y POST) de nuestra API (potenciada por FOSRestBundle) al modelo de datos pasando por DataTransformers y el sistema de validación
Aún después de varios proyectos con Symfony2 los conceptos dentro del Security Component no son fáciles ni de enteder ni de extender. Seguro que más de uno se ha estado peleando con los providers, los tokens y las mil y unas intefaces definidas en el componente solo para intentar hacer un login con facebook sin usar algunos de los bundles existentes o bien sólo para añadir alguna funcionalidad especial a la autentificación. Aunque el componente de seguridad se compone de dos partes cláramente diferenciadas, la autentificación y la autorización, esta charla se centrará solo en la parte de autentificación del componente. El objectivo de la charla es dar un poco de luz en la creación de nuestro propio provider para la autentificación de usuarios.
Sus múltiples casos de usos y su excepcional rendimiento hacen que Redis sea hoy una pieza clave en la arquitectura de aplicaciones altamente dinámicas. En la charla se pretende exponer de forma práctica cómo puede integrarse Redis en una aplicación Symfoy y cómo pueden implementarse varias de las características de las aplicaciones usando Redis, como por ejemplo: Session storage, Monolog logging handlers, Doctrine caching, SwiftMailer spooling, Profiler storage, Data Collector for Symfony2 Profiler. Además de estos casos de uso generales, se comentarán otros casos de usos específicos de aplicaciones que por su naturaleza no pueden beneficiarse de una capa de cache y se requiere por tanto una herramienta eficiente y escalable para resolver ciertos tipos de problemas. Podemos ver ejemplos reales de integración, por ejemplo, implementación de backends de aplicaciones móviles y backends de juegos sociales con varios millones de usuarios activos al día.
Si hay algo tedioso, y repetitivo, al empezar un proyecto con Symfony 2, es preparar el entorno. En los equipos de desarrollo a veces nos encontramos con problemas con los sistemas operativos, y las versiones de las librerías que cada uno tiene instaladas en su máquina, además de lo pesado que es preparar todo lo necesario en una nueva máquina, por ejemplo, para el nuevo desarrollador que entra en el equipo. Gracias a Vagrant y Puppet, podemos preparar una configuración común para nuestros proyectos replicable en todos los ordenadores de nuestro equipo de desarrollo, ¡¡incluso en los servidores de pre-producción y producción!! Cada desarrollador puede trabajar en su sistema operativo favorito, con su IDE favorito, y Vagrant hará el resto. En la primera parte de la charla, haremos una introducción a la problemática de los entornos de desarrollo con Symfony 2, comentando cuales son los pasos para preparar nuestro entorno antes de poder instalar y empezar a trabajar con el framework. También hablaremos del problema con el que a veces nos encontramos al subir código a nuestro servidor, y encontrarnos con que no funciona: ¡¡Pero si en mi máquina va perfecto!! En la última parte, veremos un caso práctico de como configurar Vagrant con Puppet para tener un entorno completo para Symfony en nuestros equipos de desarrollo.
Symfony2 ha revolucionado el mundo del desarrollo web en PHP. El framework no sólo sigue unas excelentes prácticas de programación sino que además promueve evitar reinventar la rueda una y otra vez. No es la primera vez que se habla de Symfony2 para nombrar las grandes ventajas que nos ofrecen sus componentes desacoplados pero sería injusto atribuirles a ellos todo el éxito ya que éste ha dependido en gran medida del enorme número de librerías independientes de alta calidad que han surgido a su alrededor; Twig, Assetic, Imagine, Monolog, Composer, ... De éstas y otros proyectos hablaré en esta charla, mostrando como sacarles el máximo partido, tanto fuera como dentro de proyectos en Symfony.
El Content Management Framework aporta una serie de componentes y soluciones a distintas necesidades de los CMS. En esta charla veremos de qué se trata exactamente y nos abriremos paso en la sopa de letras de componentes del CMF: el estándar PHPCR y sus tres implementaciones, Create.js, enrutamiento, Content Bundle, Admin Bundle, ...
La integración continua es un valioso recurso para asegurar que nuestros proyectos crezcan de manera correcta y así garantizar la sostenibilidad de nuestro código. En esta charla se definirá qué es la integración continua, la filosofía que subyace al concepto y las distintas soluciones que existen a la hora de aplicar ésta en proyectos desarrollados con Symfony2 (Jenkins, Travis, etc.) Aparte de esto se pretende tratar otros conceptos relacionados con la integración continua: herramientas de build (Phing, Ant), despliegues automáticos, análisis estático del código, etc.