wegnermedia/event-manager

There is no license information available for the latest version (1.0.0) of this package.

Simple Event Manager Tool for Laravel

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!