simple event dispatcher php

There is a couple of event dispatchers written in PHP.

But you could be build something more simple (primitive someone might say) like this:

function triggerEvent ($methods, $args = null) { if (!is_array($methods)) return; $str = ''; foreach ($methods as $key => $val) { $ary = explode('::', $val); $module = $class = $ary[0]; $method = $ary[1]; // include class $module, e.g. include ($module . ".inc"); // call class with specified method and collect output // in a string and do other things. e.g. send an email. $str.= $class::$method($args); } return $str; }

Now in your account system you could implement something like this, e.g. on account::signup()

triggerEvent(array('accountverify::verify'), $res); 

were $res is the boolean operation telling if verification is correct or not. Now you can send and email to an administrator or something similar in your accountverify::verify method. And at the same time you would be able to add more methods when users are signing up.

In order to make this even smarter you might add the called methods in a configuration file, so that you could specify classes and methods to call in a configuration file.

I am using something very similar in my own coscms framework with this event class

This page has been viewed 3467 times. First hit: 30-Oct-2015 17:03:13
Share email, Google+, Twitter, Facebook.
comments powered by Disqus