symfony

Recursos de programación de symfony
En Ofertix desarrollamos de forma que continuamente estamos deployando código. Así, en cuanto cualquier programador tiene la necesidad, se sube código a producción. Eso puede ser hasta más de diez veces al día. Esta forma de proceder nos libera de tediosos procesos de test y aprobación y nos proporciona una agilidad y flexibilidad altísimas. Para incrementar la fiabilidad y robustez del código subido supervisamos errores y ciertos valores estadísticos que nos indican si el sistema está fallando o incluso si se está deteriorando antes de que llegue a una fallada total. Además, hemos publicado el código en Github que utiliza componentes de Symfony2, RabbitMQ, MongoDB, ExtJS4 y HighStocks: github.com/ofertix
En esta charla descubriremos Composer, el gestor de paquetes diseñado para PHP con el que las dependencias entre librerías dejan de ser un problema y su instalación se convierte un juego de niños. Aprenderemos a usarlo desde hoy en tus propios proyectos, a crear tus propios paquetes y a integrar paquetes de terceros en tu aplicación. Asimismo, veremos las diferentes posibilidades de configuración, uso del CLI... ¡y más! Además, te presentaremos Packagist, el principal repositorio de paquetes y te mostraremos cómo crear el tuyo propio para el uso de librerías propietarias. Y para acabar, ¡descubre su papel en el ecosistema Symfony!
One button deploy. Todos aspiramos a desplegar aplicaciones a los distintos entornos de producción, desarrollo, etc. pero muy pocas empresas disponen de los conocimientos, herramientas y disciplina para lograrlo. El objetivo de esta sesión es repasar todas las herramientas que disponemos en Symfony2 para lograr en deseado One Button Deploy: * Capifony (Capistrano + Symfony) * Rollback y backups * Migraciones y actualizaciones de base de datos * Fixtures de datos y generadores
Los eventos son una característica muy potente de Symfony2 que permite desacoplar sus componentes brindando la oportunidad de extender sus funcionalidades de manera sencilla y elegante. En este concierto daremos una visión integral del sistema de eventos de Symfony2, profundizando en su funcionamiento interno llevándolo a la práctica de forma simultánea. Entraremos en detalle sobre los siguientes conceptos: * Eventos Symfony2 * Tipos (kernel.request, kernel.controller, kernel.exception, etc) * Jerarquía de ejecución y prioridad * Propagación * Consejos * Eventos propios * Listeners: configuración (XML), creación e inyección de dependencias
El modelo en Symfony2 es resuelto en parte con las Entities y los Repositories en el caso de Doctrine2. No obstante, para la lógica de negocio más compleja existen los servicios, que nos permiten construir una aplicación con arquitectura SOA con componentes totalmente desacoplados y que pueden interactuar entre sí gracias a la inyección de dependencias. En la presentación hablaremos de los Servicios, partiendo de casos simples, pero incremental para que pueda servir para todos los niveles. * Introducción Entities, Repositories y dónde encajan los servicios en el modelo MVC * Ejemplos complejos de la carpeta DependencyInjection y la carga de los Nodos de la configuración * Cómo crear un servicio * Cómo desarrollar lógica de negocio en un Servicio * Unit Testing * Servicios interactuando con otros * Casos complejos de servicios: uso de factories y servicios parent * Ejemplos de una aplicación real e-commerce (¡lecciones y errores cometidos en Ulabox!)
Repasaremos conceptos y principios para que una arquitectura sea RESTfull, se explicará cómo se ha plateado el framework Leophard para seguir estos y otros principios. También explicaremos cómo y por qué se han utilizado componentes de Symfony2, por qué se ha planteado su desarrollo existiendo ya opciones con un excepcional apoyo de la comunidad como el propio framework de Symfony2 o Silex, y qué relación tiene con los frameworks "MVC" basados en javascript en cliente y por qué deberíamos interesarnos por ellos.
El Desarrollo guiado por comportamiento o BDD es una técnica de desarrollo ágil de software que fomenta la colaboración entre desarrolladores, testers y clientes. Podemos considerarlo una evolución del Desarrollo guiado por los tests (TDD) en el que el énfasis se pone más en las especificaciones finales del software antes que en sus detalles técnicos. En esta ponencia se explican las excelentes herramientas que existen para BDD en PHP y que tienen una gran integración con Symfony. Hablaremos de los conceptos claves del BDD, de la principal herramienta de BDD en PHP (Behat), de la herramienta que permite aplicar estos conceptos a los test funcionales de proyectos web (Mink) y de la integración de estas herramientas con Symfony a través de los bundles BehatBundle y MinkBundle.
Symfony2 es el framework de moda en el ámbito PHP y el uso de TDD crece cada día. Esta charla une los dos y muestra en la práctica el desarrollo basado en tests, programando en directo código real del que te encuentras a diario en tu empresa y proyectos. TDD es una técnica que permite desarrollar el software de abajo a arriba y sin regresiones. Escribes un test, esribes el mínimo código necesario para pasar ese test y después refactorizas el código. Symfony2 por su parte dispone de una filosofía orientada a objetos que facilita mucho la programación TDD. En esta sesión se muestra cómo desarrollar aplicando TDD una aplicación que hace uso de una base de datos y un servicio web. Todo el código de la aplicación se escribe desde cero y en menos de una hora ya se dispone de una aplicación terminada, probada, que funciona y con un diseño de código muy correcto.
MongoDB es un motor de base de datos NoSQL que ha ganado mucha popularidad en los últimos tiempos, ya que ofrece muchos beneficios a la hora de desarrollar aplicaciones web. En esta charla daremos una breve introducción a su instalación, configuración y funcionamiento. Luego repasaremos las distintas alternativas a la hora de usarlo en nuestras aplicaciones desarrolladas con PHP y Symfony2, y explicaremos cómo puede incrementar la velocidad de desarrollo y ayudar con aplicaciones web de alto rendimiento.
Detrás de Symfony2 se esconden 22 componentes, 22 joyas que deberímos tener en cuenta antes de escribir nuestra primera línea de código. Las posibilidades que ofrecen este conjunto de librerías es prácticamente infinita, desde crear nuestro propio framework de desarrollo web hasta una herramienta de publicación de libros (no, no es broma, EasyBook) A lo largo de la charla veremos como poder usar estos componentes de manera aislada y entraremos a ver en detalle el funcionamiento de algunos de ellos, prestando especial interés a un componente poco documentado y de una gran utilidad, Validator.