Download the PHP package eventbus-interop/eventbus-interop without Composer
On this page you can find all versions of the php package eventbus-interop/eventbus-interop. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download eventbus-interop/eventbus-interop
More information about eventbus-interop/eventbus-interop
Files in eventbus-interop/eventbus-interop
Package eventbus-interop
Short Description Interoperability interface definitions for event buses
License MIT
Informations about the package eventbus-interop
event-bus-interop
Interfaces for interoperability between event bus implementations.
Overview
There are a number of event buses available within PHP, and they all slightly differ in their implementations, while also enforcing that any all events are derived from their interfaces or classes.
This is an effort to have all event buses use common interfaces that allow interoperability between emitters, events and listeners.
Requirements
The library requires PHP 5.6 or greater.
Installation
Installation is via composer:
The packages adheres to the SemVer specification, and there will be full backward compatibility between minor versions.
The library contains several interfaces for usage by event buses:
EventInterface
The interface defines three methods for an event to implement: name()
, isPropagationStopped()
, and stopPropagation()
.
ListenerInterface
The interface defines one public method, handle()
, which takes an EventInterface as it's single argument.
EmitterInterface
This defines three methods: emit()
, which accepts multiple events as a variadic. emitName()
and emitEvent()
are used to type hint. A trait, EmitterTrait
, proxies the individual events received in the variadic created by emit()
to the corresponding method as appropriate.
ListenerAcceptorInterface
This defines a simple method, addListener()
, which accepts three arguments: the event ID to bind the event to, the listener itself, and an optional integer priority.
Credits
The event bus interop project has been heavily influenced by the work of the container-interop project, which led to a robust unification of the various DI containers within the PHP community.