| 
<?php
 require __DIR__.'/../autoload.php';
 
 $events = new Events\Events(true);
 
 /*
 Creating Listeners
 */
 
 // Basic
 $events->on('alert', function($message){
 echo($message);
 });
 // Multiple
 $events->on('alert | keep', function($message){
 echo($message);
 });
 
 // Regex style (namespacing)
 $events->on('alert.*', function($message){
 echo($message);
 });
 
 // Namespaced for alert.regex.[anything else] excluding alert.regex it self
 $events->on('alert.regex.*', function($message){
 echo($message);
 });
 
 // Namespaced for alert.regex.[anything else] including alert.regex as well
 $events->on('alert.regex*', function($message){
 echo($message);
 });
 
 // Basic with multiple parameter
 $events->on('multi', function($message, $extra1, $extra2, $extra3){
 echo($message . $extra1 . $extra2 . $extra3);
 });
 
 // One-time event listeners
 $events->once('one-time', function($message){
 echo($message);
 });
 
 // Default behaviour Multiple times event listeners
 $events->on('multiple-time', function($message){
 echo($message);
 });
 
 
 /*
 Creating Emitters
 */
 
 /*
 This Emitter would attach to the first and second listeners
 since they both contain `alert`
 */
 $events->emit('alert', 'I love attending to Events ');
 
 echo('<br /><br />');
 
 /*
 This Emitter would attach to the alert-multi listeners and pass in multiple parameters to it
 */
 $events->emit('multi', 'I love attending to Events ', 'again, ', 'again ', 'and again');
 
 echo('<br /><br />');
 
 /*
 This Emitter would attach to the second listener
 since it contain `keep`
 */
 $events->emit('keep', 'I love attending to Events ');
 
 echo('<br /><br />');
 
 /*
 This Emitter would attach to the third and fifth listener
 since it allows for events 'namespaced' with `alert.`, `alert.regex` and `alert.regex.`
 */
 $events->emit('alert.regex', 'I love attending to Events ');
 
 echo('<br /><br />');
 
 /*
 This Emitter would attach to the third listener
 since it allows for events 'namespaced' with `alert.`
 */
 $events->emit('alert.grep.one', 'I love attending to Events ');
 echo('<br /><br />');
 
 /*
 This Emitter would attach to the third, fourth and fifth listener
 since it allows for events 'namespaced' with `alert.`, `alert.regex` and `alert.regex.`
 */
 $events->emit('alert.regex.two', 'I love attending to Events ');
 
 echo('<br /><br />');
 
 /*
 This Emitter would only get a one-time listener despite being called multiple times
 */
 for ($i=0; $i < 3; $i++) {
 $events->emit('one-time', 'I love attending to just one Event ');
 }
 
 echo('<br /><br />');
 
 /*
 Default behaviour: Multiple listeners for every time the event is emitted
 */
 for ($i=0; $i < 3; $i++) {
 $events->emit('multiple-time', 'I love attending to multiple Events ');
 echo('<br />');
 }
 
 echo('<br /><br />');
 
 /*
 If everytihing went well, this should be the expected out
 */
 
 //
 // I love attending to Events I love attending to Events
 
 // I love attending to Events again, again and again
 
 // I love attending to Events
 
 // I love attending to Events I love attending to Events
 
 // I love attending to Events
 
 // I love attending to Events I love attending to Events I love attending to Events
 
 // I love attending to just one Event
 
 // I love attending to multiple Events
 // I love attending to multiple Events
 // I love attending to multiple Events
 //
 
 
 echo('<pre>');
 
 // Print emitted events log since debug is set to true on the constructor
 var_dump(
 $events->log()
 );
 
 |