wegnermedia/event-manager

Simple Event Manager Tool for Laravel

Installs: 1

Dependents: 0

Stars: 2

Watchers: 1

Language: PHP

1.0.0 2014-07-21 19:43 UTC

README

This Package gives you an easy way to raise and dispatch events.

Installation

Per usual, install Commander through Composer.

"require": {
    "wegnermedia/event-manager": "dev-master"
}

Next, add the facade app/config/app.php.

'aliases' => [
    'EventManager' => 'Wegnermedia\EventManager\Facade'
]

And now build something awesome.

Usage

app/controllers/CartController.php

<?php

class CartController extends ShopController {

    /**
     * Add Item to Cart.
     *
     * @return Response
     */
    public function addItem()
    {
        $inputs = Input::all();

        // Validation goes here ...

        $command = new AddItemToCartCommand($inputs);

        $result = Commander::execute($command);

        EventManager::dispatch();

        // ... create the Response
    }
}

app/Shop/Cart/AddItemToCartCommandHandler.php

<?php

use Wegnermedia\Commander\CommandHandlerInterface;

class AddItemToCartCommandHandler implements CommandHandlerInterface {

    /**
     * Handle the command
     *
     * @return mixed
     */
    public function handle($command)
    {
        // some awesome stuff ...

        // Raise and event with the Namespace of "Shop"
        // Event::listen('whenShop*', ... );
        EventManager::raise( new AddingItemToCartWasSuccessfulEvent($cart, $item), 'Shop' )

        // ... create the Response
    }
}

Sometimes you may want to look into the stack

    $stack = EventManager::stack();

Done!