symfony

Recursos de programación de symfony
En los micro-servicios modernos, los cuales se basan en eventos, comunicación bidireccional, stream multiplexing y otras formas de sincronización de los datos, la arquitectura clásica basada en HTTP/REST no siempre es la mejor opción. Algunas veces las aplicaciones requieren servicios donde es necesario mantener una comunicación asíncrona de eventos fluyendo en ambas direcciones, por ejemplo, un cliente conectado por Websocket. ¿Qué hacer en estos casos si tenemos la gran mayoría de nuestros servicios implementados con Symfony o Silex y queremos tener comunicación en real time con un cliente? ¿Qué opciones tenemos, qué soluciones podemos aplicar y con qué trade-offs? El objetivo de la charla es dar respuestas a estas preguntas, basándonos en casos de usos reales en producción, comparar las distintas alternativas existentes y ver ejemplos prácticos de integración Silex/Symfony.
¿Te has preguntado alguna vez cómo estos conceptos de CQRS/ES se pueden aplicar en un proyecto PHP/Symfony? Para ello, echaremos un vistazo al código de nuestro último proyecto: un sistema de gestión de almacén. La charla mostrará cómo entendemos el DDD y cómo lo aplicamos en Ulabox, cómo cambia la arquitectura y el código de la aplicación cuando aplicamos CQRS y cómo tratar con Event Sourcing, cuando no hay entidades persistidas, solo eventos que generan proyecciones que se usan en el modelo de lectura. Es un proyecto con arquitecturas nuevas (CQRS-ES), con la mentalidad DDD-Arquitectura hexagonal, pero con una base muy importante de Symfony.
En Ulabox tenemos código de hace 6 años y nuestra aplicación principal está atrapada bajo el paradigma CRUD. Nuestro dominio cada vez es más complejo y al ritmo que crecemos no es sostenible seguir trabajando bajo esas premisas. Nos encanta Symfony, pero lo más importante es nuestra lógica de dominio. Seguimos usando Symfony, pero perseguimos liberar dependencias, huyendo de un modelo anémico y tomando una mentalidad más DDD. En la charla trataremos como mejorar nuestro código y orientarlo más a dominio. Concretamente: - Mejorar nuestro código es nuestra responsabilidad - ¿Cómo mejorar nuestros controllers? - Desacoplar nuestras entidades de Symfony Forms - Aplicar DDD y separar modelo de lectura y escritura (CQRS) - Identificar agregados raíz
El componente de seguridad de Symfony lo usamos prácticamente a diario. Normalmente usamos algún bundle que nos aporta alguna funcionalidad como OAuth o simplemente nos simplifica la gestión como pueda ser el FOSUserBundle. Pero al final puede convertirse en una caja negra de la que ignoramos que a veces con poco esfuerzo podemos implementar nuestras soluciones de forma sencilla. La última incorporación para ayudarnos ha sido Guard, un componente que nos simplifica la implementación de sistemas de autenticación. Para comprenderlo primero haremos un repaso rápido del componente de seguridad, sus partes y el flujo que se realiza para determinar si una petición está autenticada y tiene autorización. Después revisaremos básicamente cómo implementar un sistema de autenticación clásico, los elementos que intervienen y los pasos a dar. Por último implementaremos el mismo sistema pero con el nuevo componente Guard. De esta forma no sólo aprenderemos el cómo, si no con qué corresponde en cada elemento del componente de seguridad.
Reportage sobre la SymfonyCat 2016. La primera edición de un evento internacional que gira entorno a Symfony, una serie de componentes de programación en PHP, y un framework de desarrollo web con una de las comunidades más grandes. Más info: http://codely.tv/entrevistas/symfonycat-2016/
En la charla de mayo, Pablo Cabello nos hablara de su desarollo: RiegoEco. Un sistema en el que, mediante Symfony 2, Node JS y un Arduino, es capaz de controlar el sistema de riego de una plantalación. https://github.com/cabellop5/arduino-php
En esta ocasión toca hablar de Symfony. Germán Figna (@gerfigna) y Alfonso Machado (@almacbe) y nos contarán cómo se las arreglan para desarrollar sus bundles de forma que los puedan usar en sus distintos proyectos.  Ellos lo resumen con las siguientes palabras: "En nuestro equipo desarrollamos un conjunto de librerías core que tienen que ser usadas por múltiples proyectos de distinta naturaleza, lo cual ha hecho que tengamos que conseguir bundles lo más reusables posible. En esta charla vamos a explicar los mecanismos y posibilidades que ofrece Symfony y Doctrine para implementar un bundle reusable para que pueda ser aprovechado en distintos proyectos y que pueda modificarse y extenderse su comportamiento y funcionalidades. Para ello, entraremos en detalle de cómo hacer esto con controladores, entidades, servicios, formularios, validaciones, etc. Estas técnicas y mecanismos que explicaremos se utilizan en algunos de los bundles más utilizados como FOSUserBundle, SymfonyCMF o KNP DoctrineBehaviors, las cuales te ayudarán a comprender muchísimo mejor cómo funcionan y cómo están hechos."
Betabeers Salamanca Enero 2016 - Symfony La slides de la presentación aqui: http://www.slideshare.net/rodrigo/introduction-to-symfony-57360760
The talk's description While working on Sylius, I have come up with an idea for generic-use and format agnostic CRUD controllers. Thanks to several amazing packages from Symfony & Sylius communities, you can build REST APIs in minutes. What is Lionframe? Lionframe - Rapid REST API development framework, based on Symfony and few libraries, including: SyliusResourceBundle FOSRestBundle Hateoas JMSSerializer What you can do? Lionframe workflow is very simple: Create or generate your Doctrine model (~30s) Configure it as resource and in routing (~20s) Default REST API is ready to use! Sylius resource layer can work with any persistence backend, but currently ORM (SQL databases), MongoDB and PHPCR are supported. Doctrine ORM is used in Lionframe’s tutorial. Why? PHP Community has some great tools to handle REST APIs, but we need more rapid development and we decided to combine these tools with Sylius resource management bundle and provide you with a robust API framework. For more information visit https://joind.in/talk/view/15871
Valentín Rusev (@kolbyfloyd) nos contará cómo ha desarrollado http://festop.com/ después de 2 años de esfuerzo. Valentín es un fijo en las reuniones de PHP Valencia desde hace años. Arquitecto de carrera y con muy poca experiencia previa en desarrollo, el jueves día 10 de diciembre nos explicará cómo ha superado todas las barreras que le han ido apareciendo hasta dar a luz a Festop. ¿Quieres saber cómo está organizado un proyecto con frontend de AngularJS y backend de Symfony 2? ¡Pues no te pierdas la charla! En palabras de Valentín: "El objetivo de la charla por una parte es explicar cómo he usado Symfony para desarrollar mi primera aplicación. Y por otra, compartir la experiencia y los asombros de alguien que se enfrenta por primera vez al mundo de la programación."