Skip to content

ericlbarnes/CodeIgniter-Events

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

No longer maintained

I am not longer going to maintain this project. Please visit this fork to get one that is maintained:

https://github.com/nathanmac/CodeIgniter-Events


CodeIgniter Events Library

Build extendible applications with an events system.

Version 1.0.0

Public Methods

register

Registers a Callback for a given event

  • $event string
  • $callback array
  • Example: Events::register('test_string', array('Class_name', 'string_return'));

trigger

Triggers an event and returns the results.

  • $event string - The name of the event
  • $data mixed - Any data that is to be passed to the listener
  • $return_type string - Either 'array', 'json', 'serialized', or 'string'
  • Example: Events::trigger('test_string', 'test', 'string');

has_listeners

Checks if the event has any listeners

  • $event string - The name of the event
  • return bool

Usage Overview

All Events functions are static.

You can add a listener to an event with the register() function:

Events::register('event_name_here', array('class_name_or_object_ref', 'method_name'));

The second parameter of register() is an array that is callable via call_user_func().

You trigger an Event by calling the trigger() function:

$event_return = Events::trigger('event_name_here', $data, 'string');

The 3rd parameter is the type of data you wish trigger() to return. Your options are as follows:

  • 'array'
  • 'json'
  • 'serialized'
  • 'string' (the default)

Example Usage

Because events need to be registered before being used it is a good idea to have a system in place to load any of these before you trigger any events.

Here is an example using a third party library to register the event.

// Example Welcome Controller

class Welcome extends CI_Controller {

	public function __construct()
	{
		parent::__construct();
		// Load Library
		$this->load->library('events');
		// Load our class that registers an event. See class Test below.
		$this->load->add_package_path(APPPATH.'third_party/test/');
		$this->load->library('test');
	}

	public function index()
	{
		var_dump(Events::trigger('test_string', 'test', 'string'));
	}
}

// Example third_party/test/libaries/test.php

class Test {

	public function __construct()
	{
		Events::register('test_string', array($this, 'string_return'));
	}

	public function string_return()
	{
		return 'I returned a string. Cakes and Pies!';
	}
}

About

Events library to build extendible applications

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages