Skip to content

Commit

Permalink
add docs for create subscriber
Browse files Browse the repository at this point in the history
  • Loading branch information
peter-gribanov committed Oct 2, 2017
1 parent e67e83a commit bb917a4
Show file tree
Hide file tree
Showing 3 changed files with 48 additions and 4 deletions.
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,8 @@ $bus->pullAndPublish($purchase_order);
* [Base usage](docs/base.md)
* [Raise events in self](docs/raise_in_self.md)
* Listener
* [Create listener](docs/listener.md)
* [Create listener](docs/listener/listener.md)
* [Create subscriber](docs/listener/subscriber.md)
* Locator
* [Direct binding locator](docs/listener/locator/direct_binding.md)
* [PSR-11 Container locator](docs/listener/locator/psr-11_container.md) *([PSR-11](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-11-container.md))*
Expand Down
6 changes: 3 additions & 3 deletions docs/listener.md → docs/listener/listener.md
Original file line number Diff line number Diff line change
Expand Up @@ -105,8 +105,8 @@ $locator->register(PurchaseOrderCompletedEvent::class, [$listener, 'handlePurcha

You can use exists locators of listener:

* [Direct binding locator](listener/locator/direct_binding.md)
* [PSR-11 container aware locator](listener/locator/psr-11_container.md)
* [Symfony container aware locator](listener/locator/symfony_container.md)
* [Direct binding locator](locator/direct_binding.md)
* [PSR-11 container aware locator](locator/psr-11_container.md)
* [Symfony container aware locator](locator/symfony_container.md)

Or you can create custom locator that implements `GpsLab\Domain\Event\Listener\Locator\EventListenerLocator` interface.
43 changes: 43 additions & 0 deletions docs/listener/subscriber.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
Event subscriber
================

You can handle many events in one subscriber.

```php
class PurchaseOrderSubscriber implements Subscriber
{
public static function subscribedEvents()
{
return [
PurchaseOrderCreatedEvent::class => ['handlePurchaseOrderCreated'],
PurchaseOrderCompletedEvent::class => ['handlePurchaseOrderCompleted'],
];
}

public function handlePurchaseOrderCreated(PurchaseOrderCreatedEvent $event)
{
// do something
}

public function handlePurchaseOrderCompleted(PurchaseOrderCompletedEvent $event)
{
// do something
}
}

$listener = new PurchaseOrderListener();

// register event listener in listener locator
$locator = new DirectBindingEventListenerLocator();
$locator->registerSubscriber(new PurchaseOrderSubscriber());
```

## Listener locator

You can use exists locators of listener:

* [Direct binding locator](locator/direct_binding.md)
* [PSR-11 container aware locator](locator/psr-11_container.md)
* [Symfony container aware locator](locator/symfony_container.md)

Or you can create custom locator that implements `GpsLab\Domain\Event\Listener\Locator\EventListenerLocator` interface.

0 comments on commit bb917a4

Please sign in to comment.