ZF2 Events - spaceweb.nl · ZF2 events are both triggered and handled server side ZF2 events...
Transcript of ZF2 Events - spaceweb.nl · ZF2 events are both triggered and handled server side ZF2 events...
![Page 1: ZF2 Events - spaceweb.nl · ZF2 events are both triggered and handled server side ZF2 events implement the Observer or PubSub (Publish-subscribe) pattern There are many built-in events](https://reader036.fdocuments.in/reader036/viewer/2022062604/5fb84e5ff08e4b71fb25ab77/html5/thumbnails/1.jpg)
ZF2 EventsBart McLeod
![Page 2: ZF2 Events - spaceweb.nl · ZF2 events are both triggered and handled server side ZF2 events implement the Observer or PubSub (Publish-subscribe) pattern There are many built-in events](https://reader036.fdocuments.in/reader036/viewer/2022062604/5fb84e5ff08e4b71fb25ab77/html5/thumbnails/2.jpg)
Publish-subscribeAlso known as: Observer
Image credits: The 23 Gang of Four Design Patterns on flickr
![Page 3: ZF2 Events - spaceweb.nl · ZF2 events are both triggered and handled server side ZF2 events implement the Observer or PubSub (Publish-subscribe) pattern There are many built-in events](https://reader036.fdocuments.in/reader036/viewer/2022062604/5fb84e5ff08e4b71fb25ab77/html5/thumbnails/3.jpg)
Publish-subscribeAs applied in ZF2
![Page 4: ZF2 Events - spaceweb.nl · ZF2 events are both triggered and handled server side ZF2 events implement the Observer or PubSub (Publish-subscribe) pattern There are many built-in events](https://reader036.fdocuments.in/reader036/viewer/2022062604/5fb84e5ff08e4b71fb25ab77/html5/thumbnails/4.jpg)
Why care?
![Page 5: ZF2 Events - spaceweb.nl · ZF2 events are both triggered and handled server side ZF2 events implement the Observer or PubSub (Publish-subscribe) pattern There are many built-in events](https://reader036.fdocuments.in/reader036/viewer/2022062604/5fb84e5ff08e4b71fb25ab77/html5/thumbnails/5.jpg)
Cuz it's flexible( and fun too )
![Page 6: ZF2 Events - spaceweb.nl · ZF2 events are both triggered and handled server side ZF2 events implement the Observer or PubSub (Publish-subscribe) pattern There are many built-in events](https://reader036.fdocuments.in/reader036/viewer/2022062604/5fb84e5ff08e4b71fb25ab77/html5/thumbnails/6.jpg)
ZendSkeletonApplicationis our starting point
![Page 7: ZF2 Events - spaceweb.nl · ZF2 events are both triggered and handled server side ZF2 events implement the Observer or PubSub (Publish-subscribe) pattern There are many built-in events](https://reader036.fdocuments.in/reader036/viewer/2022062604/5fb84e5ff08e4b71fb25ab77/html5/thumbnails/7.jpg)
Composeris a decency manager for php
![Page 8: ZF2 Events - spaceweb.nl · ZF2 events are both triggered and handled server side ZF2 events implement the Observer or PubSub (Publish-subscribe) pattern There are many built-in events](https://reader036.fdocuments.in/reader036/viewer/2022062604/5fb84e5ff08e4b71fb25ab77/html5/thumbnails/8.jpg)
The result!spoiler: mod_rewrite
![Page 9: ZF2 Events - spaceweb.nl · ZF2 events are both triggered and handled server side ZF2 events implement the Observer or PubSub (Publish-subscribe) pattern There are many built-in events](https://reader036.fdocuments.in/reader036/viewer/2022062604/5fb84e5ff08e4b71fb25ab77/html5/thumbnails/9.jpg)
Better
![Page 10: ZF2 Events - spaceweb.nl · ZF2 events are both triggered and handled server side ZF2 events implement the Observer or PubSub (Publish-subscribe) pattern There are many built-in events](https://reader036.fdocuments.in/reader036/viewer/2022062604/5fb84e5ff08e4b71fb25ab77/html5/thumbnails/10.jpg)
Events
Built-in
Custom
![Page 11: ZF2 Events - spaceweb.nl · ZF2 events are both triggered and handled server side ZF2 events implement the Observer or PubSub (Publish-subscribe) pattern There are many built-in events](https://reader036.fdocuments.in/reader036/viewer/2022062604/5fb84e5ff08e4b71fb25ab77/html5/thumbnails/11.jpg)
MVC eventsdefined in Zend\Mvc\MvcEvent
![Page 12: ZF2 Events - spaceweb.nl · ZF2 events are both triggered and handled server side ZF2 events implement the Observer or PubSub (Publish-subscribe) pattern There are many built-in events](https://reader036.fdocuments.in/reader036/viewer/2022062604/5fb84e5ff08e4b71fb25ab77/html5/thumbnails/12.jpg)
Time for action
Log a dispatch error
We use the default 'Application' module
and a filesystem log (text file)
http://zfevents.dev/hello
![Page 13: ZF2 Events - spaceweb.nl · ZF2 events are both triggered and handled server side ZF2 events implement the Observer or PubSub (Publish-subscribe) pattern There are many built-in events](https://reader036.fdocuments.in/reader036/viewer/2022062604/5fb84e5ff08e4b71fb25ab77/html5/thumbnails/13.jpg)
SharedEventManager vs
EventManager
You might want to read: http://www.michaelgallego.fr/blog/2013/05/12/understanding-the-zend-framework-2-event-manager/
![Page 14: ZF2 Events - spaceweb.nl · ZF2 events are both triggered and handled server side ZF2 events implement the Observer or PubSub (Publish-subscribe) pattern There are many built-in events](https://reader036.fdocuments.in/reader036/viewer/2022062604/5fb84e5ff08e4b71fb25ab77/html5/thumbnails/14.jpg)
Controlling access
Install ZfcUser
Deny access to Restricted module using the dispatch MVC event
http://zfevents.dev/restricted
Reminder: password is vagrant
![Page 15: ZF2 Events - spaceweb.nl · ZF2 events are both triggered and handled server side ZF2 events implement the Observer or PubSub (Publish-subscribe) pattern There are many built-in events](https://reader036.fdocuments.in/reader036/viewer/2022062604/5fb84e5ff08e4b71fb25ab77/html5/thumbnails/15.jpg)
A Custom event
Trigger the 'log' event
Handle the 'log' event by writing a log message
![Page 16: ZF2 Events - spaceweb.nl · ZF2 events are both triggered and handled server side ZF2 events implement the Observer or PubSub (Publish-subscribe) pattern There are many built-in events](https://reader036.fdocuments.in/reader036/viewer/2022062604/5fb84e5ff08e4b71fb25ab77/html5/thumbnails/16.jpg)
RecapZF2 events are both triggered and handled server side
ZF2 events implement the Observer or PubSub (Publish-subscribe) pattern
There are many built-in events
MVC Events are the most common of the built-in events
You can trigger and handle your own events
![Page 17: ZF2 Events - spaceweb.nl · ZF2 events are both triggered and handled server side ZF2 events implement the Observer or PubSub (Publish-subscribe) pattern There are many built-in events](https://reader036.fdocuments.in/reader036/viewer/2022062604/5fb84e5ff08e4b71fb25ab77/html5/thumbnails/17.jpg)
We did not coverEvent short-circuiting
Listener aggregates
EventManagerAwareInterface
You might want to read http://www.michaelgallego.fr/blog/2013/05/12/understanding-the-zend-framework-2-event-manager/
![Page 18: ZF2 Events - spaceweb.nl · ZF2 events are both triggered and handled server side ZF2 events implement the Observer or PubSub (Publish-subscribe) pattern There are many built-in events](https://reader036.fdocuments.in/reader036/viewer/2022062604/5fb84e5ff08e4b71fb25ab77/html5/thumbnails/18.jpg)
Thank you!
Bart McLeod
@bartmcleod
http://spaceweb.nl
http://dwa.io