Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

sabre-event, a simple event management library for PHP 5.4

DZone's Guide to

sabre-event, a simple event management library for PHP 5.4

· Web Dev Zone ·
Free Resource

Jumpstart your Angular applications with Indigo.Design, a unified platform for visual design, UX prototyping, code generation, and app development.

I just released version 1.0 of sabre-event, a simple event management library for PHP, heavily inspired by both nodejs' EventEmitter, and Igor Wielder's Événement.

This library has a few extra features not in Événement that I really needed, and Igor had no plans adding it to his library, so I wrote my own.

In a nutshell, this is how you use it:

<?php

use Sabre\Event\EventEmitter;

include 'vendor/autoload.php';

$eventEmitter = new EventEmitter();

// subscribing
$eventEmitter->on('create', function() {

    echo "Something got created, apparently\n"

});

$eventEmitter->emit('create');

?>

The EventEmitter object can also be integrated into existing objects, by extending it, or using it as a trait:

<?php

use Sabre\Event;

class MyNotUneventfulApplication implements Event\EventEmitterInterface
{

    use Event\EventEmitterTrait;

}

?>

It differs from Événement in two features:

  1. It's possible to prioritize listeners, and let them trigger earlier or later in the event chain.
  2. It's possible for listeners to break the event chain, much like javascript's preventDefault().

I hope it will be useful to others. You can find the full documentation on GitHub, and the preferred installation method is through Composer.

Take a look at the Indigo.Design sample applications to learn more about how apps are created with design to code software.

Topics:

Published at DZone with permission of

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}