deSymfony 2012

Concierto de eventos (dúo para voz y teclado)

Javier Aceituno y Eduardo Gulias  · 

Presentación

Vídeo

Transcripción

Extracto de la transcripción automática del vídeo realizada por YouTube.

bueno chicos se oye bien si no después de este parón bueno comenzamos rápido porque no sacó ni un poquito de tiempo mi nombre es javi y mi compañero eduardo y vamos a hablar de eventos y eventos en symphony 2 y los del concierto bueno ya veréis un poquito

más adelante voy a traerme el ratón primero de todo da las gracias a los organizadores que sin ellos esto no hubiese sido posible y a los patrocinadores y bueno vamos allá empecemos con el concierto vamos a dividir la charla en dos bloques principales uno

vamos a hablar vamos a dar una visión teórica del nivel dispatcher los eventos y demás y por otro lado va a ser una demo que os enseñaremos cómo utilizar los eventos en symphony 2 empezamos con el escenario principal lo que quiero hablar aquí es dar un escenario

que utilizaremos durante toda la charla pues para que todos en todo momento os sentáis se sepa de qué estamos hablando a quién le suena esta línea seguro que a mucha gente siempre que quieras un usuario a través de un formulario pues recoge su email aquí lo

hemos hecho chiquito y de hecho sólo el email y creamos una nueva entidad usuario y la guardamos utilizando la persistencia que sea por ejemplo podemos utilizar doctrina muy bien pero qué pasa que este comportamiento lo hacemos en cada una de nuestros proyectos

casi todos tenemos que hacer un registro de usuario entonces decidimos sacar toda este todo este manejo de usuarios a una librería por ejemplo a un bank de liu serván del que se encarga de crear eliminar actualizar cada uno de los a uno de los usuarios de

tal manera que el controlador la acción del controlador quedaría así crearía el gestor de usuarios y le diría al gestor de usuarios que creara el usuario con ese email vale muy bien esta sería la estructura que tendría el gestor de usuarios con un método crear

usuario lo tendría toda la demás lógica pero aquí para hacerlo más sencillito se lo hemos puesto esto y a la hora de guardar pues como como quisiéramos persistir lo pero que queremos ahora queremos aumentar esa funcionalidad queremos conectarnos con give hub

para saber si ese email existen git hub y en caso de que exista pues inyectarle toda la información que nos devuelve github como el número de repositorios etcétera de tal manera que una vez que hemos creado un usuario hacemos un curso avid hub y todos los

datos que nos vienen en ese responso le inyectamos al usuario con él con él con el método se metadata pero qué problemas tiene esto imaginaos que queremos utilizar esta funcionalidad en varios puntos de la aplicación en varias aplicaciones tendrías que duplicar

todo este código para cada una de ellas diciendo aquí quiero que java que quiero ir hub aquí quiero que te conectes con get hub qué maneras tenemos de solucionar esto pues la primera solución es hacer la conexión con give up dentro de la propia librería de

gestión de usuarios de tal manera que el controlador quedaría quedaría igual que antes cogeríamos el email y crearíamos un usuario muy sencillo igual que antes nunca hagáis esto esto nada nada de fácil qué pasa si tú lo que has hecho es extender o sea te has

liberado toda la carga de gestión de usuario y la respuesta de una librería es quieres utilizarlo en todos los proyectos no todos quieres que se conecten a vista entonces que otra manera de solucionarlo hay muchas maneras solucionarlo lo podrías hacer por

configuración pero aquí como vamos a hablar de eventos por lo vamos a hacer utilizando el patrón observador y qué es eso el patrón observador seguro que todos lo conocéis pero bueno vamos a entrar aquí un poquito en detalle si vosotros buscáis el patrón observador

en la wiki está la primera imagen que os sale es un patrón de es un patrón muy sencillo hay dos elementos principales del sujeto y los listen es que aquí observadores vale de tal manera que este patrón lo que busca es que cada vez que exista un cambio de estado

en el sujeto informe a todos sus notifica a todos sus observadores de que ha habido un cambio en el sistema os voy a hacer una plica o sea voy a aplicar el ejemplo que os ha comentado de git hub aquí y ya veréis cómo vais a entender muy rápido cuando se le

llamará crear usuario a nuestro sujeto en este caso sería el gestor de usuarios entonces nosotros queremos notificar antes de guardar el usuario para por ejemplo con guija introducir datos al usuario antes de ser almacenado en la base de datos de tal manera

que tendríamos que nuestro gestor del gestor de usuario se extendería a un sujeto y tendría el método notificar a todos los observadores de que se está haciendo un cambio en el sistema es decir estoy diciendo que el usuario se ha creado y todos aquellos que

quieran estar escuchando todos los rastreadores observadores que quieran estar escuchando a cuando un usuario se crea pues se conectaría les devolvería al usuario y el rastreador haría todo lo que quisiese hacer en este caso introduciría los datos del git

hub de tal manera que antes de guardar el usuario aquí ya tenemos el usuario con los metadatos muy bien pero aquí estamos queremos hablar de él dispatcher qué es eso live en dispatcher pues es una implementación de este patrón observador en php ya están tan

solo eso y tiene estar formado por cuatro elementos principales el primer elemento pues es el evento que es el elemento que es el elemento que será lanzado por el sujeto a través del even dispatcher para informar a todos mis observadores de que algo ha pasado

muy bien él y sener eligen eres el elemento que será notificado cuando un evento sea lanzado y le pasarán por parámetro pues todo lo que quieras informar en este caso el usuario es lo que se envía por parámetro en tercer lugar tenemos el inmenso escribir que

es igual que elvis en er lo único que implementa ya los eventos que se encontrará escuchando durante todo el transcurso durante toda su vida no se puede añadir nuevos eventos a este le genera de manera dinámica en cambio les lys en el sí y el himen dispatcher

es el objeto central que conoce todos los listen es que hay todos los eventos que hay y cuál es la conexión entre ellos entonces si utilizamos el ejemplo antes explica utilizando el living dispatcher en este caso veréis que tenemos otro elemento allá arriba

algo a la derecha que se vive en dispatcher de tal manera que el gestor usuarios cuando le llegará la llamada de crear un nuevo usuario con el email el gestor usuarios de legaría esta acción a nivel dispatcher que sería el encargado de recorrerse cada uno

de los listen es que estuvieran escuchando este evento que está justo aquí antes de crear un usuario le informaría pasándole por parámetros ya no solo el evento le pasaría o sea no sólo el usuario personal sino que pasaría un evento que internamente tendría

el usuario con el que podríamos ya utilizar que podríamos ya manejarlo hacer lo que quisiéramos en este caso pues meterle la información del bid hub bueno pues ahora acedo la palabra eduardo que os va a comentar cómo se utilizan los los eventos de los círculos

bueno pues hemos visto una situación inicial vale hemos visto cómo podemos utilizar el patrón de observador y el indes thatcher pero cómo se utilizan los eventos y heras dispatcher en en 5 años vale bueno pues symphony 2 utiliza estos dos componentes para

gestionar toda la parte de eventos sale el even dispatcher para conocer los listen expresar los eventos y el http kernel como actor principal que se encarga de definir los eventos y de lanzarlos vale iba a ser el crimen dispatcher que va a ser la gestión y

comunicar todos esos eventos a los listones bueno no sé si habéis estado en la charla de raúl fraile de internas vale vamos a acelerar un poquito aquí porque es es un repaso de conceptos más que nada vale es infundios todos los eventos que lanza el htc tracker

[ ... ]

Nota: se han omitido las otras 3.773 palabras de la transcripción completa para cumplir con las normas de «uso razonable» de YouTube.