Skip to content

phpinnacle/ensign

Repository files navigation

PHPinnacle Ensign

Latest Version on Packagist Software License Coverage Status Quality Score Total Downloads

PHPinnacle Ensign provides tools that allow your application components to communicate with each other by dispatching signals and listening to them.

Thanks to amphp backend those communication is fully asynchronous.

Install

Via Composer

$ composer require phpinnacle/ensign

Basic Usage

<?php

require __DIR__ . '/vendor/autoload.php';

use PHPinnacle\Ensign\DispatcherBuilder;

Amp\Loop::run(function () {
    $builder = new DispatcherBuilder;
    $builder
        ->register('upper', function (string $text) {
            return \strtoupper($text);
        })
        ->register('lower', function (string $text) {
            return \strtolower($text);
        })
    ;

    $dispatcher = $builder->build();

    $hello = yield $dispatcher->dispatch('upper', 'hello');
    $world = yield $dispatcher->dispatch('lower', 'WORLD');

    echo sprintf('%s %s!', $hello, $world);
});

More examples can be found in examples directory.

Testing

$ composer test

Contributing

Please see CONTRIBUTING and CONDUCT for details.

Security

If you discover any security related issues, please email dev@phpinnacle.com instead of using the issue tracker.

Credits

License

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