Charla sobre Eventos de deSymfony 2012 de @egulias y @javiacei. Puedes ver el video en http://youtu.be/03tpUS0OaeY. Desde los eventos de Symfony 2 (kernel.*) hasta lanzar nuestro propio evento.
Para ver el código final de la charla: https://github.com/egulias/desymfony2012-concierto-de-eventos
7. Creamos librería para gestionar los usuarios
Esto nos permitirá reutilizar la gestión de usuarios para
todos nuestros proyectos
desymfony 2012 - Concierto de eventos 7
11. ¿Qué queremos ahora?
A la hora de guardar el usuario, si este tiene perfil en
Github, localizar y guardar información adicional del
usuario.
desymfony 2012 - Concierto de eventos 11
28. 1. Escenario principal
2. El patrón observador
3. El Event Dispatcher
4. Los Eventos en Symfony 2
desymfony 2012 - Concierto de eventos 28
29. Implementa el patrón observador de
manera simple y efectiva.
desymfony 2012 - Concierto de eventos 29
30. Event
Evento que será lanzado por el sujeto a través del event dispatcher,
para informar de un cambio de estado en su interior.
Listener
Elemento que será notificado cuando el evento sea lanzado.
Event Subscriber
Mismo elemento que el listener, pero define internamente los
eventos que se encontrará escuchando en todo momento.
Dispatcher
Objeto central del sistema de eventos que mantiene un registro de
todos los listeners, y que eventos tienen asociados cada uno de ellos.
desymfony 2012 - Concierto de eventos 30
41. Lo usa el FrameworkBundle mediante el
RouterListener para crear el atributo
_controller y definir el controlador que será
llamado.
Podemos parar la propagación devolviendo
un objeto Response
47. Nos permite modificar el objeto Response
devuelto por el controlador
El FrameworkBundle implementa varios
listeners
ProfilerListener
WebDebugToolbarListener
ResponseListener
EsiListener
50. Son clases normales definidos como
servicios
Para los eventos del kernel, los registramos
en la configuración del inyector.
Nos permiten realizar acciones durante los
eventos
desymfony 2012 - Concierto de eventos 50
56. Eduardo Gulias
• Desarrollador web desde 2006
• Coqueteando con Symfony (y otros
frameworks) desde 2007
• Entusiasta de PHP y Symfony
• Miembro del grupo Symfony Madrid
egulias
• Actualmente trabajando como lider de del
equipo Symfony de ideup!
egulias
desymfony 2012 - Concierto de eventos 56
57. Francisco Javier Aceituno
• Ingeniero en Informática UPM 2010
• Loco por el mundo web y nuevas
tecnología s
• Apasionado del universo PHP y Symfony
• Desarrollador de Software Libre
• Miembro del grupo Symfony Madrid
javiacei
• Actualmente trabajando como Ingeniero
javiacei del Software en Unidad Editorial
desymfony 2012 - Concierto de eventos 57
58. Código de la presentación
https://github.com/javiacei/desymfony2012-concierto-de-eventos
El Event Dispatcher
http://symfony.com/doc/current/components/event_dispatcher/introduction.html
http://symfony.com/doc/current/book/internals.html
Trabajar usando el CompilerPass
http://symfony.com/doc/master/cookbook/service_container/compiler_passes.html
http://symfony.com/doc/master/components/dependency_injection/compilation.html
Trabajando con servicios tageados
http://symfony.com/doc/master/components/dependency_injection/tags.html
desymfony 2012 - Concierto de eventos 58