Listen to Supervisor events in PHP
Switch branches/tags
Nothing to show
Clone or download
Pull request Compare This branch is 6 commits behind develop.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
spec/Event
src
stub
.editorconfig
.gitignore
.scrutinizer.yml
.travis.yml
CHANGELOG.md
CONTRIBUTING.md
LICENSE
README.md
TODO.md
composer.json
phpspec.yml.ci
phpspec.yml.dist

README.md

Indigo Supervisor Event

Latest Version Software License Build Status Code Coverage Quality Score HHVM Status Total Downloads Dependency Status

Listen to Supervisor events in PHP.

Install

Via Composer

$ composer require indigophp/supervisor-event

Usage

Supervisor has this pretty good feature: notify you(r listener) about it's events.

The main entry point is the Listener. Listenerss wait for a Handler in the main listening logic. Handlers get a Notification when an event occurs.

use Indigo\Supervisor\Event\Listener\Standard;
use Indigo\Supervisor\Event\Handler\Callback;
use Indigo\Supervisor\Event\Notification;

$handler = new Callback(function(Notification $notification) {
	echo $notification->getHeader('eventname');
});

$listener = new Standard;

$listener->listen($handler);

Currently available listeners:

  • Standard: Listents to standard input stream, writes to standard output
  • Guzzle: Uses StreamInterface to provide an easy interface for reading/writting

Additionally you can use two exceptions to control the listeners itself:

  • Indigo\Supervisor\Exception\StopListener: indicates that the Listener should stop listening for further events.
  • Indigo\Supervisor\Exception\EventHandlingFailed: indicates that handling the event failed, Listener should return with a FAIL response.

Any other unhandled exceptions/errors will cause the listener to stop.

Check the Supervisor docs for more about Events.

Testing

$ phpspec run

Contributing

Please see CONTRIBUTING for details.

Credits

License

The MIT License (MIT). Please see License File for more information.