symfony

Recursos de programación de symfony
Sphinx es un motor de busqueda full-text, rapido, tiene soporte para indexar multiples bases de datos SQL, muestra la relevancia de cada resultado e incluso, entre otras muchas caracteristicas, tiene su propio lenguaje SQL(SphinxQL). Sphinx aparte de brindarnos rapidez, nos ayudara a integrar en nuestros proyectos con muchisima facilidad caracteristicas de busqueda como las busquedas semanticas o busquedas relacionadas. En esta ponencia explicaremos brevemente como configurar un servidor Sphinx, que ventajas, caracteristicas y opciones nos ofrece y como integrarlo dentro de Symfony2.
AngularJS es un framework Javascript relativamente nuevo, patrocinado por Google, que está ganando mucha popularidad gracias a su potencia, flexibilidad y simplicidad. En esta charla haremos una introducción de sus caulidades más importantes, veremos como se acopla con Symfony para la creación de aplicaciones web con interfaz ricas y complejas, incluyendo consejos prácticos de como diseñar nuestra aplicación establecer su estructura. Por último, mostraremos una aplicación escrita en AngularJS que se conecta a servidores REST y WebSockets creados con Symfony.
Cuando realizas una petición HTTP a un servidor con una aplicación Symfony, hay una increible cantidad de procesos que se ponen en marcha antes de obtener una respuesta: construcción del contenedor de dependencias, enrutamiento, accesos a la base de datos, templating, etc... ¿Cómo puede Symfony manejar toda esta complejidad y aún así ser super rápido? En esta ponencia hablaremos de la principal arma que usa Symfony: las cachés de aplicación (que no deben confundirse con los caches HTTP). Estudiaremos los distintos cachés que Symfony usa, como se construyen (cuando y por quien), como son usados, las principales diferencias entre los entornos de desarrollo y producción y que se puede hacer para hacer Symfony más rápido aún.
Desde hace varios meses en Bodaclick estamos trabajando para cambiar la antigua plataforma (un monolito PHP 4 que abarca varias aplicaciones internas aparte de la web) por una nueva plataforma basada en Symfony 2. Esta ponencia hablará cómo hemos pulido las asperezas de la convivencia de dos aplicaciones diametralmente diferentes utilizando: * RabbitMQ * Diseño Orientado a Servicios * Lazy migration * Mapeo parcial de bbdd * Eventos asíncronos (en Symfony 2) * Redis Y otras más junto con los trucos que hemos encontrado para resolver el manejo de hasta 5 bases de datos diferentes.
Basándonos en la aplicación PadelLeague que ganó el concurso de Mucho+Symfony veremos algunas de las buenas prácticas que se usaron mediante ejemplos. Los managers son usados para gestionar los objetos de dominio, quitando responsabilidades al controlador. Se suelen usar en combinación con los eventos para ofrecer una funcionalidad más completa. El uso de eventos nos permite extender una aplicación o bundle y desacoplar servicios unos de otros, relacionado con los bundles FOSCommentBundle es un buen ejemplo de extensión mediante eventos y FOSUserBundle ha dejado de usar Form handlers a favor de los eventos. También se hará un repaso a las buenas prácticas con los formularios viendo el uso de DataTransformers, models, custom Types y eventos para generar formularios dinámicos.
Symfony aparte de un framework full-stack es una genial librería de componentes desacoplados. Aunque no uses el framework MVC tienes a tu disposición una serie de componentes de una alta calidad listos para su uso. Uno de estos componentes es el Contenedor de Inyección de Dependencias que, además de formar parte del corazón de Symfony, podemos usarlo de una manera muy sencilla como una dependencia externa más en nuestros proyectos PHP con Composer. En esta charla hablaremos sobre Inyección de Dependencias como patrón de diseño y sobre Contenedores de Inyección en PHP. Mas de sobre "que son" hablaremos sobre su "porque" y sobre que nos aportan al usarlos en nuestros proyectos PHP, así como ejemplos de como implementar todo esto usando el componente de Symfony.
Guzzle es un cliente HTTP que facilita de forma increíble el crear, consumir e interactuar con servicios web, como por ejemplo, la api REST de un servicio web como Twitter, Amazon AWS, Github, entre otros. Nos ofrece completo control del estándar HTTP para la generación de un Request y nos permite de forma organizada manejar el Response y definir modelos sobre las respuestas para actuar mas facilmente sobre ellas. En esta charla se introducirá como configurar la libreria de forma independiente en menos de 10 minutos, y como integrarlo en un proyecto de Symfony2 y Silex, para empezar a atacar APIs, se explicaran sus usos mas comunes, se hablara de proyectos que ya lo tienen incorporado (como Drupal, el Amazon AWS SDK para PHP, y la libreria Goutte, para hacer Webscraping, de Fabien Potencier, entre otras). Se terminara con un ejemplo practico en dos proyectos de Acilia, para atacar a un servicio web (emailvision), para envíos de emails transaccionales y masivos de dos aplicaciones y posterior recopilación de reportes de dichos envíos, todo mediante llamadas y respuestas HTTP a una API REST.
El ritmo de desarrollo de Symfony es tan alto que en muchas ocasiones cuesta estar al corriente de todo lo que está ocurriendo en el proyecto. A lo largo de la charla se presentarán las novedades que están por venir en Symfony 2.3.
En esta charla se pretenden tocar todas las cosas que debemos tener en cuenta para sacar el máximo rendimiento y poder escalar usando Symfony2. Se tocará desde parámetros de configuración de PHP y APC, optimización de Composer, dónde optimizar, quick wins varios, cómo hacer profiling correctamente, BBDD NoSQL vs SQL y por supuesto lecciones aprendidas en Ulabox, SocialPoint y espero tener cosas que contar de Brighttalk!
Cada vez más programadores de Symfony2 utilizan Silex para sus proyectos pequeños y medianos. Silex es muy ágil y se puede aprender a utilizarlo en menos de una hora. El problema sucede cuando la aplicación crece en tamaño y complejidad, ya que para Silex no existen tantos recursos y documentación como para Symfony2. Esta charla trata varios de los conceptos más avanzados de Silex: * Creación de proveedores de servicios propios. * Creación de backends y proyectos multi-aplicación. * Integración del ORM de Doctrine2. * Escalar el código de la aplicación. * Pequeños trucos para mejorar el rendimiento en producción.