PHP Library for event dispatching
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
src/Event
tests
.gitignore
.travis.yml
LICENSE
README.md
composer.json
phpunit.xml.dist

README.md

Event

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();