sinergi/event

PHP event dispatching library

0.3.0 2014-06-03 02:16 UTC

This package is not auto-updated.

Last update: 2020-01-20 08:42:13 UTC


README

Build Status

A smart PHP event dispatching library that does not require your listeners to be aware of your subjects.

Requirements

This library uses PHP 5.4+.

Installation

It is recommended that you install the Event library through composer. To do so, add the following lines to your composer.json file.

{
    "require": {
       "sinergi/event": "dev-master"
    }
}

Usage

Listener example

use Sinergi\Event\ListenerInterface;

class MyListener implements ListenerInterface
{
    public function onUpdate(Subject $subject)
    {
        // do something
    }
}

Subject example

class Subject
{
    public $dispatcher;

    public function update()
    {
        $this->dispatcher->trigger($this, 'update');
    }
}

Add listener to dispatcher

use Sinergi\Event\Dispatcher;

$dispatcher = new Dispatcher();
$dispatcher->add(new MyListener());

Bind it all together

$subject = new Subject();
$subject->dispatcher = $dispatcher;
$subject->update();