Your SlideShare is downloading. ×
deSymfony 2012 - Concierto de Eventos
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

deSymfony 2012 - Concierto de Eventos

3,149
views

Published on

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. …

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

Published in: Technology

1 Comment
2 Likes
Statistics
Notes
No Downloads
Views
Total Views
3,149
On Slideshare
0
From Embeds
0
Number of Embeds
8
Actions
Shares
0
Downloads
55
Comments
1
Likes
2
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. desymfony 2012 - Concierto de eventos 1
  • 2. desymfony 2012 - Concierto de eventos 2
  • 3. 3
  • 4. 1. Escenario principal2. El patrón observador3. El Event Dispatcher4. Los Eventos en Symfony 2 desymfony 2012 - Concierto de eventos 4
  • 5. 1. Escenario principal2. El patrón observador3. El Event Dispatcher4. Los Eventos en Symfony 2 desymfony 2012 - Concierto de eventos 5
  • 6. desymfony 2012 - Concierto de eventos 6
  • 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
  • 8. desymfony 2012 - Concierto de eventos 8
  • 9. desymfony 2012 - Concierto de eventos 9
  • 10. ¿Qué queremos ahora?desymfony 2012 - Concierto de eventos 10
  • 11. ¿Qué queremos ahora?A la hora de guardar el usuario, si este tiene perfil enGithub, localizar y guardar información adicional delusuario. desymfony 2012 - Concierto de eventos 11
  • 12. desymfony 2012 - Concierto de eventos 12
  • 13. Si guardamos el usuario desde otro lugar tenemos que duplicar el código. desymfony 2012 - Concierto de eventos 13
  • 14. Introducir el código de github dentro de la librería desymfony 2012 - Concierto de eventos 14
  • 15. Introducir el código de github dentro de la librería desymfony 2012 - Concierto de eventos 15
  • 16. Introducir el código de github dentro de la librería desymfony 2012 - Concierto de eventos 16
  • 17. Introducir el código de github dentro de la librería desymfony 2012 - Concierto de eventos 17
  • 18. Permitir modificar el usuario antes de guardarse desymfony 2012 - Concierto de eventos 18
  • 19. Permitir modificar el usuario antes de guardarse pero …, ¿cómo hacemos eso? desymfony 2012 - Concierto de eventos 19
  • 20. Permitir modificar el usuario antes de guardarse pero …, ¿cómo hacemos eso?Patrón observador desymfony 2012 - Concierto de eventos 20
  • 21. 1. Escenario principal2. El patrón observador3. El Event Dispatcher4. Los Eventos en Symfony 2 desymfony 2012 - Concierto de eventos 21
  • 22. desymfony 2012 - Concierto de eventos 22
  • 23. Gestor Usuarios (sujeto) Rastreador Github github(observador) desymfony 2012 - Concierto de eventos 23
  • 24. Gestor Usuarios (sujeto) Rastreador Github github(observador) desymfony 2012 - Concierto de eventos 24
  • 25. Gestor Usuarios (sujeto) Rastreador Github github(observador) desymfony 2012 - Concierto de eventos 25
  • 26. Gestor Usuarios (sujeto) usuario Rastreador Github github(observador) desymfony 2012 - Concierto de eventos 26
  • 27. Gestor Usuarios (sujeto) usuario Rastreador Github github(observador) desymfony 2012 - Concierto de eventos 27
  • 28. 1. Escenario principal2. El patrón observador3. El Event Dispatcher4. 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
  • 31. Event Gestor Usuarios DispatcherRastreador Github github(Listener) desymfony 2012 - Concierto de eventos 31
  • 32. Event Gestor Usuarios DispatcherRastreador Github github(Listener) desymfony 2012 - Concierto de eventos 32
  • 33. antes_crear_usuario Event Gestor Usuarios Dispatcher Event usuarioRastreador Github github(Listener) desymfony 2012 - Concierto de eventos 33
  • 34. antes_crear_usuario Event Gestor Usuarios Dispatcher Event usuarioRastreador Github github(Listener) desymfony 2012 - Concierto de eventos 34
  • 35. antes_crear_usuario Event Gestor Usuarios Dispatcher Event usuarioRastreador Github github(Listener) desymfony 2012 - Concierto de eventos 35
  • 36. 1. Escenario principal2. El patrón observador3. El Event Dispatcher4. Los Eventos en Symfony 2 desymfony 2012 - Concierto de eventos 36
  • 37. Event Dispatcher HttpKernel
  • 38. HttpKernelEvent • getRequestType() • getKernel() • getRequest()kernel.request ... kernel.exception
  • 39. kernel.requestkernel.controller kernel.viewkernel.responsekernel.exception
  • 40. 1 kernel.request kernel.controller kernel.view kernel.response kernel.exception
  • 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
  • 42. 1 kernel.request2 kernel.controller kernel.view kernel.response kernel.exception
  • 43.  Nos permite modificar el controlador establecido en kernel.request
  • 44. 1 kernel.request2 kernel.controller3 kernel.view kernel.response kernel.exception
  • 45.  Sólo es llamado si el controlador no devuelve un objeto Response Nos permite crear un sub sistema de vistas
  • 46. 1 kernel.request2 kernel.controller3 kernel.view4 kernel.response kernel.exception
  • 47.  Nos permite modificar el objeto Response devuelto por el controlador El FrameworkBundle implementa varios listeners  ProfilerListener  WebDebugToolbarListener  ResponseListener  EsiListener
  • 48. 1 kernel.request2 kernel.controller3 kernel.view4 kernel.response5 kernel.exception
  • 49.  Sólo es llamado si hay una excepción
  • 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
  • 51. 51
  • 52. • Prioridad de los listeners• Frenar la propagación 52
  • 53. • Master & Sub Request• Listeners.xml• app/console container:debug 53
  • 54. 1. Listeners2. Miiii Eveeeentooooo desymfony 2012 - Concierto de eventos 54
  • 55. 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
  • 56. 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 Madridjaviacei • Actualmente trabajando como Ingenierojaviacei del Software en Unidad Editorial desymfony 2012 - Concierto de eventos 57
  • 57. 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.htmlhttp://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
  • 58. desymfony 2012 - Concierto de eventos 59