PHPackages                             labrador-kennel/async-event-autowire - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. labrador-kennel/async-event-autowire

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

labrador-kennel/async-event-autowire
====================================

Allows labrador-kennel/async-event Listeners to be autowired into an EventEmitter.

2.0.0(2y ago)07942MITPHPPHP ^8.2

Since Jun 19Pushed 1y ago1 watchersCompare

[ Source](https://github.com/labrador-kennel/async-event-autowire)[ Packagist](https://packagist.org/packages/labrador-kennel/async-event-autowire)[ RSS](/packages/labrador-kennel-async-event-autowire/feed)WikiDiscussions main Synced 3w ago

READMEChangelog (3)Dependencies (6)Versions (4)Used By (2)

Labrador 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
-----

[](#guide)

### Step 1: Install the library

[](#step-1-install-the-library)

Composer is the only supported method of installing this library.

```
composer require labrador-kennel/async-event-autowire
```

### Step 2: Configure the DefinitionProvider

[](#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:

```

            Labrador\AsyncEvent\Autowire\DefinitionProvider

```

> 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

[](#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:

```
