Skip to content

Commit

Permalink
Adding a Readme and a composer.json for the Event library
Browse files Browse the repository at this point in the history
  • Loading branch information
lorenzo committed Aug 24, 2014
1 parent 1951b16 commit 7b43c63
Show file tree
Hide file tree
Showing 2 changed files with 57 additions and 0 deletions.
45 changes: 45 additions & 0 deletions src/Event/README.md
@@ -0,0 +1,45 @@
# CakePHP Event Library

This library emulates several aspects of how events are triggered and managed in popular JavaScript
libraries such as jQuery: An event object is dispatched to all listeners. The event object holds information
about the event, and provides the ability to stop event propagation at any point.
Listeners can register themselves or can delegate this task to other objects and have the chance to alter the
state and the event itself for the rest of the callbacks.

## Usage

Collections can be created using an array or Traversable object. A simple use of a Collection would be:

```php
use Cake\Event\Event;
use Cake\Event\EventManagerTrait;

class Orders {

use EventManagerTrait;

public function placeOrder($order) {
$this->doStuff();
$event = new Event('Orders.afterPlace', $this, [
'order' => $order
]);
$this->eventManager()->dispatch($event);
}
}

$orders = new Orders();
$orders->eventManager()->attach(function($event) {
// Do something after the order was placed
...
}, 'Orders.afterPlace');

$orders->placeOrder($order);
```

The above code allows you to easily notify the other parts of the application that an order has been created.
You can then do tasks like send email notifications, update stock, log relevant statistics and other tasks
in separate objects that focus on those concerns.

## Documentation

Please make sure you check the [official documentation](http://book.cakephp.org/3.0/en/core-libraries/events.html)
12 changes: 12 additions & 0 deletions src/Event/composer.json
@@ -0,0 +1,12 @@
{
"name": "cakephp/event",
"description": "CakePHP event dispatcher library that helps implementing the observer pattern",
"license": "MIT",
"authors": [
{
"name": "CakePHP Community",
"homepage": "http://cakephp.org"
}
],
"minimum-stability": "beta"
}

0 comments on commit 7b43c63

Please sign in to comment.