SlideShare une entreprise Scribd logo
1  sur  33
Télécharger pour lire hors ligne
Event Dispatcher
Symfony 2.X
- Yogesh Salvi
Introduction
● Coupling
● Tightly Coupled and Loosely Coupled System
● Event
● Event Dispatcher
○ Open Ear Event Dispatcher - Listener
○ Open Mouth Event Dispatcher - Talker
● Event-Driven Architecture
● Understand the terms
○ Listener
○ Subscriber
● Demo
● Questions?
Coupling
Coupling
● A device for connecting parts.
● In Software Terminology
○ Coupling is the degree of interdependence between software entities.
○ It measure of how closely connected two or more software entities.
○ It shows strength of the relationships between software entities.
○ Coupling is usually contrasted with cohesion.
○ Low coupling often correlates with high cohesion, and vice versa.
○ Coupling can be "low" (also "loose" and "weak") or "high" (also "tight" and "strong")
Tightly and Loosely Coupled
System
Tightly Coupled System
● Tight coupling is when a group of entities are highly dependent on one
another.
● This scenario arises when a class assumes too many responsibilities,
● When one concern is spread over many entities rather than having its own
class.
● When entity don’t follow Single Responsibility Principle and separation of
concerns.
F
E
D
C
A
B
Tightly Coupled System - Disadvantages
● A change in one module usually forces a ripple effect of changes in other
modules.
● Assembly of modules might require more effort and/or time due to the
increased inter-module dependency.
● A particular module might be harder to reuse and/or test because dependent
modules must be included.
Loosely Coupled System
● Loose coupling is achieved by means of a design that promotes
single-responsibility and separation of concerns.
● A loosely-coupled entity can be consumed and tested independently of other
entities.
● Loose coupling is often a sign of a well-structured computer system and a
good design.
● when it combined with high cohesion, it supports the general goals of high
readability and maintainability.
Loosely Coupled System
● Components can be replaced with alternative implementations that provide
the same services.
● Components in a loosely coupled system are less constrained to the same
platform, language, operating system, or build environment.
F
E
D
C
A
B
Event
Event
An event can be defined as
"a significant change in state"
Event - Structure
● Event Header
○ The event header might include information such as event name, time stamp for the event,
and type of event.
● Event Body
○ The event body provides the details of the state change detected. An event body should not
be confused with the pattern or the logic that may be applied in reaction to the occurrence of
the event itself.
Event
Dispatcher
Dispatcher
● Dispatchers are communications personnel
responsible for receiving and transmitting pure and
reliable messages.
● A number of organizations, including police and fire
departments, emergency medical services, railroads,
etc, use dispatchers to relay information and
coordinate their operations.
Event Dispatcher
Event Dispatcher
● It provides way which allow application components to communicate with
each other by dispatching events and listening to them.
● It is the only way to use communication where you don't care about the
target object.
● Target object may or may not be exists.
● They will listen to any messages that are being broadcasted.
Open Ear Event Dispatcher
Listener
Open Ear Event Dispatcher - Listener
● This type of event dispatchers are like
message-sponges.
● They will listen to any messages that are
being broadcasted.
Open Mouth Event
Dispatcher - Talker
Open Mouth Event Dispatcher - Talker
● This type of event dispatchers are like
loudmouths.
● They will broadcast any message to anyone
who is listening on demand.
Event-Driven Architecture
Event-Driven Architecture
Event-Driven Architecture aims at promoting
Loosely Coupled System.
● It is a programming paradigm in which the flow of the program is
determined by series of events.
● It is a software architecture pattern promoting the creation, detection,
consumption of, and reaction to events.
Event-Driven Architecture
Event Generator
Event Dispatcher
Event Handler 2Event Handler 1 Event Handler 3
Event Open Ear Event
Dispatcher
Open Mouth
Event Dispatcher
Event-Driven Architecture
● A listener tells a central dispatcher object that it wants to listen to the some
specific event (X).
● At some point, the event generator tells the dispatcher object to dispatch the
event (X), passing with it an Event object.
● Event object itself often contains data about the event being dispatched.
● The dispatcher notifies (i.e. calls a method on) all listeners of the event (X).
Listener vs Subscriber
Listener
● It is signed up specifying the events on which it listens (i.e. Service
Definition).
● It can also listen on several events simply by adding more tags in service
definition.
● Same event listener can be bind to different events without modifying class.
Simply by changing service definition.
● An event listeners are bind at the time of bootstrapping.
● Listeners are more flexible because bundles can enable or disable each of
them conditionally depending on some configuration value.
Subscriber
● The Subscriber has a method telling the dispatcher what events it is listening
to.
● It keeps the knowledge of the events in the class rather than in the service
definition.
● You can change the events a subscriber is registered for, at runtime and
even after registering the subscriber by changing the return value of
getSubscribedEvents method.
● Subscribers are easier to reuse because the knowledge of the events is kept
in the class rather than in the service definition. This is the reason why
Symfony uses subscribers internally;
Listener vs Subscriber
Eventually
both Listeners and Subscribers are
registered as
“Listeners”.
Debugging Event Listeners
You can find out what listeners are registered in the event dispatcher using the
console:
You can get registered listeners for a particular event by specifying its name:
# php bin/console debug:event-dispatcher
# php bin/console debug:event-dispatcher kernel.exception
Demo
Questions???
Thank You!
Yogesh M Salvi
References:
● https://en.wikipedia.org/wiki/Loose_coupl
ing
● https://en.wikipedia.org/wiki/Event-drive
n_architecture
● http://symfony.com/doc/current/compone
nts/event_dispatcher.html

Contenu connexe

Tendances

1414101 시각영상디자인과 고승희_색채학보고서
1414101 시각영상디자인과 고승희_색채학보고서1414101 시각영상디자인과 고승희_색채학보고서
1414101 시각영상디자인과 고승희_색채학보고서
seunghui
 
0.0.0.1 lab initializing and reloading a router and switch - ilm
0.0.0.1 lab   initializing and reloading a router and switch - ilm0.0.0.1 lab   initializing and reloading a router and switch - ilm
0.0.0.1 lab initializing and reloading a router and switch - ilm
Pedro César Carrasco Nova
 
LL Lower Pri A - Punctuation marks
LL Lower Pri A - Punctuation marksLL Lower Pri A - Punctuation marks
LL Lower Pri A - Punctuation marks
Designlab Innovation
 
DPI Solutions, Digital printing & Imaging Solutions Company Profile
DPI Solutions, Digital printing & Imaging Solutions Company ProfileDPI Solutions, Digital printing & Imaging Solutions Company Profile
DPI Solutions, Digital printing & Imaging Solutions Company Profile
npradeep19832004
 

Tendances (15)

Company Profile Petakumpet
Company Profile Petakumpet Company Profile Petakumpet
Company Profile Petakumpet
 
Planning Guide monthly nlpg fy12
Planning Guide monthly nlpg fy12Planning Guide monthly nlpg fy12
Planning Guide monthly nlpg fy12
 
1414101 시각영상디자인과 고승희_색채학보고서
1414101 시각영상디자인과 고승희_색채학보고서1414101 시각영상디자인과 고승희_색채학보고서
1414101 시각영상디자인과 고승희_색채학보고서
 
Autel MaxiCom MK808TS User Manual
Autel MaxiCom MK808TS User ManualAutel MaxiCom MK808TS User Manual
Autel MaxiCom MK808TS User Manual
 
Cenik grafično oblikovanje 2020
Cenik grafično oblikovanje 2020Cenik grafično oblikovanje 2020
Cenik grafično oblikovanje 2020
 
0.0.0.1 lab initializing and reloading a router and switch - ilm
0.0.0.1 lab   initializing and reloading a router and switch - ilm0.0.0.1 lab   initializing and reloading a router and switch - ilm
0.0.0.1 lab initializing and reloading a router and switch - ilm
 
Success Story
Success Story Success Story
Success Story
 
Recurrent Neural Network : Multi-Class & Multi Label Text Classification
Recurrent Neural Network : Multi-Class & Multi Label Text ClassificationRecurrent Neural Network : Multi-Class & Multi Label Text Classification
Recurrent Neural Network : Multi-Class & Multi Label Text Classification
 
LL Lower Pri A - Punctuation marks
LL Lower Pri A - Punctuation marksLL Lower Pri A - Punctuation marks
LL Lower Pri A - Punctuation marks
 
NDC 2015 게임 기획자에게 들려주는 괜찮은 이야기 _ 이태성
NDC 2015 게임 기획자에게 들려주는 괜찮은 이야기 _ 이태성NDC 2015 게임 기획자에게 들려주는 괜찮은 이야기 _ 이태성
NDC 2015 게임 기획자에게 들려주는 괜찮은 이야기 _ 이태성
 
DPI Solutions, Digital printing & Imaging Solutions Company Profile
DPI Solutions, Digital printing & Imaging Solutions Company ProfileDPI Solutions, Digital printing & Imaging Solutions Company Profile
DPI Solutions, Digital printing & Imaging Solutions Company Profile
 
Number words
Number wordsNumber words
Number words
 
Scaling CPU Experiences: An Introduction to the Entity Component System
Scaling CPU Experiences: An Introduction to the Entity Component SystemScaling CPU Experiences: An Introduction to the Entity Component System
Scaling CPU Experiences: An Introduction to the Entity Component System
 
erzincan
erzincanerzincan
erzincan
 
Hacking3e ppt ch13
Hacking3e ppt ch13Hacking3e ppt ch13
Hacking3e ppt ch13
 

Similaire à Event Dispatcher

AULT : Agent based User simulation
AULT : Agent based User simulationAULT : Agent based User simulation
AULT : Agent based User simulation
Om Narayan
 
Tlpi chapter 38 writing secure privileged programs
Tlpi   chapter 38 writing secure privileged programsTlpi   chapter 38 writing secure privileged programs
Tlpi chapter 38 writing secure privileged programs
Shu-Yu Fu
 
Tum seminar specification of usage control requirements
Tum seminar specification of usage control requirementsTum seminar specification of usage control requirements
Tum seminar specification of usage control requirements
Bibek Shrestha
 

Similaire à Event Dispatcher (20)

Event Driven Software Architecture Pattern
Event Driven Software Architecture PatternEvent Driven Software Architecture Pattern
Event Driven Software Architecture Pattern
 
Event driven systems
Event driven systems Event driven systems
Event driven systems
 
Workflows via Event driven architecture
Workflows via Event driven architectureWorkflows via Event driven architecture
Workflows via Event driven architecture
 
Aaai 2011 event processing tutorial
Aaai 2011 event processing tutorialAaai 2011 event processing tutorial
Aaai 2011 event processing tutorial
 
Vldb 2010 event processing tutorial
Vldb 2010 event processing tutorialVldb 2010 event processing tutorial
Vldb 2010 event processing tutorial
 
Learning Vague Knowledge From Socially Generated Content in an Enterprise Fra...
Learning Vague Knowledge From Socially Generated Content in an Enterprise Fra...Learning Vague Knowledge From Socially Generated Content in an Enterprise Fra...
Learning Vague Knowledge From Socially Generated Content in an Enterprise Fra...
 
AULT : Agent based User simulation
AULT : Agent based User simulationAULT : Agent based User simulation
AULT : Agent based User simulation
 
PATTERNS06 - The .NET Event Model
PATTERNS06 - The .NET Event ModelPATTERNS06 - The .NET Event Model
PATTERNS06 - The .NET Event Model
 
context aware.pptx
context aware.pptxcontext aware.pptx
context aware.pptx
 
pattern v
pattern vpattern v
pattern v
 
Architectural styles class 1
Architectural  styles class 1Architectural  styles class 1
Architectural styles class 1
 
An Introduction to Software Architecture - Summary
An Introduction to Software Architecture - SummaryAn Introduction to Software Architecture - Summary
An Introduction to Software Architecture - Summary
 
A Whirlwind Tour of Spatial Joins
A Whirlwind Tour of Spatial JoinsA Whirlwind Tour of Spatial Joins
A Whirlwind Tour of Spatial Joins
 
Testing Event Driven Architecture Presentation
Testing Event Driven Architecture PresentationTesting Event Driven Architecture Presentation
Testing Event Driven Architecture Presentation
 
Testing Event Driven Architecture Presentation
Testing Event Driven Architecture PresentationTesting Event Driven Architecture Presentation
Testing Event Driven Architecture Presentation
 
Reactive - Is it really a Magic Pill?
Reactive - Is it really a Magic Pill?Reactive - Is it really a Magic Pill?
Reactive - Is it really a Magic Pill?
 
Tlpi chapter 38 writing secure privileged programs
Tlpi   chapter 38 writing secure privileged programsTlpi   chapter 38 writing secure privileged programs
Tlpi chapter 38 writing secure privileged programs
 
Reactive systems
Reactive systemsReactive systems
Reactive systems
 
Understanding concurrency
Understanding concurrencyUnderstanding concurrency
Understanding concurrency
 
Tum seminar specification of usage control requirements
Tum seminar specification of usage control requirementsTum seminar specification of usage control requirements
Tum seminar specification of usage control requirements
 

Dernier

AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
VictorSzoltysek
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
VishalKumarJha10
 

Dernier (20)

Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfAzure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 

Event Dispatcher

  • 2. Introduction ● Coupling ● Tightly Coupled and Loosely Coupled System ● Event ● Event Dispatcher ○ Open Ear Event Dispatcher - Listener ○ Open Mouth Event Dispatcher - Talker ● Event-Driven Architecture ● Understand the terms ○ Listener ○ Subscriber ● Demo ● Questions?
  • 4. Coupling ● A device for connecting parts. ● In Software Terminology ○ Coupling is the degree of interdependence between software entities. ○ It measure of how closely connected two or more software entities. ○ It shows strength of the relationships between software entities. ○ Coupling is usually contrasted with cohesion. ○ Low coupling often correlates with high cohesion, and vice versa. ○ Coupling can be "low" (also "loose" and "weak") or "high" (also "tight" and "strong")
  • 5. Tightly and Loosely Coupled System
  • 6. Tightly Coupled System ● Tight coupling is when a group of entities are highly dependent on one another. ● This scenario arises when a class assumes too many responsibilities, ● When one concern is spread over many entities rather than having its own class. ● When entity don’t follow Single Responsibility Principle and separation of concerns. F E D C A B
  • 7. Tightly Coupled System - Disadvantages ● A change in one module usually forces a ripple effect of changes in other modules. ● Assembly of modules might require more effort and/or time due to the increased inter-module dependency. ● A particular module might be harder to reuse and/or test because dependent modules must be included.
  • 8. Loosely Coupled System ● Loose coupling is achieved by means of a design that promotes single-responsibility and separation of concerns. ● A loosely-coupled entity can be consumed and tested independently of other entities. ● Loose coupling is often a sign of a well-structured computer system and a good design. ● when it combined with high cohesion, it supports the general goals of high readability and maintainability.
  • 9. Loosely Coupled System ● Components can be replaced with alternative implementations that provide the same services. ● Components in a loosely coupled system are less constrained to the same platform, language, operating system, or build environment. F E D C A B
  • 10. Event
  • 11. Event An event can be defined as "a significant change in state"
  • 12. Event - Structure ● Event Header ○ The event header might include information such as event name, time stamp for the event, and type of event. ● Event Body ○ The event body provides the details of the state change detected. An event body should not be confused with the pattern or the logic that may be applied in reaction to the occurrence of the event itself.
  • 13. Event
  • 15. Dispatcher ● Dispatchers are communications personnel responsible for receiving and transmitting pure and reliable messages. ● A number of organizations, including police and fire departments, emergency medical services, railroads, etc, use dispatchers to relay information and coordinate their operations.
  • 17. Event Dispatcher ● It provides way which allow application components to communicate with each other by dispatching events and listening to them. ● It is the only way to use communication where you don't care about the target object. ● Target object may or may not be exists. ● They will listen to any messages that are being broadcasted.
  • 18. Open Ear Event Dispatcher Listener
  • 19. Open Ear Event Dispatcher - Listener ● This type of event dispatchers are like message-sponges. ● They will listen to any messages that are being broadcasted.
  • 21. Open Mouth Event Dispatcher - Talker ● This type of event dispatchers are like loudmouths. ● They will broadcast any message to anyone who is listening on demand.
  • 23. Event-Driven Architecture Event-Driven Architecture aims at promoting Loosely Coupled System. ● It is a programming paradigm in which the flow of the program is determined by series of events. ● It is a software architecture pattern promoting the creation, detection, consumption of, and reaction to events.
  • 24. Event-Driven Architecture Event Generator Event Dispatcher Event Handler 2Event Handler 1 Event Handler 3 Event Open Ear Event Dispatcher Open Mouth Event Dispatcher
  • 25. Event-Driven Architecture ● A listener tells a central dispatcher object that it wants to listen to the some specific event (X). ● At some point, the event generator tells the dispatcher object to dispatch the event (X), passing with it an Event object. ● Event object itself often contains data about the event being dispatched. ● The dispatcher notifies (i.e. calls a method on) all listeners of the event (X).
  • 27. Listener ● It is signed up specifying the events on which it listens (i.e. Service Definition). ● It can also listen on several events simply by adding more tags in service definition. ● Same event listener can be bind to different events without modifying class. Simply by changing service definition. ● An event listeners are bind at the time of bootstrapping. ● Listeners are more flexible because bundles can enable or disable each of them conditionally depending on some configuration value.
  • 28. Subscriber ● The Subscriber has a method telling the dispatcher what events it is listening to. ● It keeps the knowledge of the events in the class rather than in the service definition. ● You can change the events a subscriber is registered for, at runtime and even after registering the subscriber by changing the return value of getSubscribedEvents method. ● Subscribers are easier to reuse because the knowledge of the events is kept in the class rather than in the service definition. This is the reason why Symfony uses subscribers internally;
  • 29. Listener vs Subscriber Eventually both Listeners and Subscribers are registered as “Listeners”.
  • 30. Debugging Event Listeners You can find out what listeners are registered in the event dispatcher using the console: You can get registered listeners for a particular event by specifying its name: # php bin/console debug:event-dispatcher # php bin/console debug:event-dispatcher kernel.exception
  • 31. Demo
  • 33. Thank You! Yogesh M Salvi References: ● https://en.wikipedia.org/wiki/Loose_coupl ing ● https://en.wikipedia.org/wiki/Event-drive n_architecture ● http://symfony.com/doc/current/compone nts/event_dispatcher.html