elise/events

Event Manager

dev-master / 1.0.x-dev 2015-12-05 20:48 UTC

This package is not auto-updated.

Last update: 2025-07-05 22:00:21 UTC


README

Installation

The package is available on Packagist. You can install it using Composer.

composer require elise/events dev-master
require_once("vendor/autoload.php");

use elise\events\Manager as EventManager;

Manual

###Initial

$manager = new EventManager;

###Option

//Priorities enable
$manager->priority(true);

//Response enable
$manager->response(true);


//Getting responses
$manager->getResponses();//return array

###Listeners ####Create listener closure

$manager->on("db:connect", function($event){
	echo "DB Connected";
	if ($event->isCancelable() === true) {
		$event->stop();
	}
	return "#1"; 
}, EventManager::NORMAL);

####Create listener class

class DbEvent
{
	public function connect($event, $source, $data)
	{
		echo "DB Connected";
		if ($event->isCancelable() === true) {
			$event->stop();
		}
		return "#2";
	}
}
$manager->on("db",new Db);
$manager->on($eventType,$listener,$priority);

#####on parameters $eventType - Event name $listener - Listener object or closure $priority - Priority runing event

#####Priority variants

  • EventManager::LOW
  • EventManager::NORMAL
  • EventManager::HIGH
  • any integer

#####listener parameters

$event - object event $soruce - object calling or null $data - object calling data (array)

###Event ####Lazy

$manager->run("db:connect");

####Full

class Db
{
	function connect()
	{
		$manager->run("db:connect", $this, array(), false);
	}
}

#####run parameters

$manager->run($eventType, $source, $data, $cancelabe);

$eventType - name running event $soruce - Calling class object or null $data - data setting event listener $cancelable - is canceling event

####Allowed

//Local disable
$manager->allowedListeners("db:connect",false);

//Global disable
$manager->allowedListeners("db",false);

####Methods

###Dettach

$manager->dettch("db");
//or
$manager->detach("db");

###Has listeners

$manager->hasListeners("db"); //return bool

###Get Listeners

$manager->getListeners("db");//return array