Download the PHP package labrador-kennel/async-event-autowire without Composer
On this page you can find all versions of the php package labrador-kennel/async-event-autowire. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download labrador-kennel/async-event-autowire
More information about labrador-kennel/async-event-autowire
Files in labrador-kennel/async-event-autowire
Package async-event-autowire
Short Description Allows labrador-kennel/async-event Listeners to be autowired into an EventEmitter.
License MIT
Informations about the package async-event-autowire
Labrador async-event Autowire
This library is an optional tool to be used with [labrador-kennel/async-event]() and [cspray/annotated-container](). It allows automatically registering async-event Listeners into the Emitter wired in your container. This library and documentation are geared toward users with an understanding of both async-event and annotated-container. If you are not already using these libraries, this repo doesn't have a lot for you.
Guide
Step 1: Install the library
Composer is the only supported method of installing this library.
Step 2: Configure the DefinitionProvider
In your app's Annotated Container configuration, add the appropriate DefinitionProvider: Labrador\AsyncEvent\Autowire\DefinitionProvider
. This will ensure that the Labrador\AsyncEvent\Emitter
is wired into your container appropriately. By default, this interface will be aliased to Labrador\AsyncEvent\AmpEmitter
.
If you are using the default XML configuration for Annotated Container, this should look something like:
If you are starting with a greenfield project that does not yet have an Annotated Container configuration, you can ensure this library is installed and run
./vendor/bin/annotated-container init
and this configuration value will automatically be set.
Step 3: Add autowiring Annotated Container Listener
In your app's bootstrapping code, add the Labrador\AsyncEvent\Autowire\RegisterAutowiredListener
to your Annotated Container emitter. This Annotated Container Listener is responsible for finding appropriate Listener services that should be automatically registered and adding them to the Async Event Emitter defined in your Container.
Bootstrapping code is generally more varied, but you should have something that resembles the following:
Step 4: Annotate your Async Event Listener
Finally, ensure your Labrador Listeners are properly annotated with the #[AutowiredListener]
attribute. This will define each Listener as a service in the Container. This allows us to retrieve them after the Container is created to register them with the Labrador Emitter. This also means that your Labrador Listeners can define other services in their constructor, and they will be automatically resolved by the Container.
All versions of async-event-autowire with dependencies
cspray/annotated-container Version ^3.0.0-alpha
cspray/annotated-container-adr Version ^4.0.0-alpha
cspray/annotated-container-attribute Version ^2.0.0-alpha.7
cspray/annotated-target Version ^v2.0.0.alpha.2
cspray/architectural-decision Version ^v3.0.0.alpha.2
labrador-kennel/async-event Version ^4.0