sminnee / callbacklist

PHP class that manages a list of callbacks
2 stars 2 forks source link

sminnee/callbacklist

Build Status Scrutinizer Code Quality codecov.io

Latest Stable Version License Monthly Downloads

GitHub Code Size GitHub Last Commit GitHub Activity GitHub Issues

This micropackage provides a simple class for managing a list of callbacks.

Usage

> composer require sminnee/callbacklist
use Sminnee\CallbackList\CallbackList;

$list = new CallbackList;
$list->add(function() { "this will get called"; });
$list->add(function() { "so will this"; });
$list->call();

// Or you can use it as a callable if you prefer
$list();

Arguments can be passed:

$list->add(function($greeting) { "$greeting, world!"; });
$list("Hello");

Return values are collated as an array

use Sminnee\CallbackList\CallbackList;

$list = new CallbackList;
$list->add(function() { return "this will get returned"; });
$list->add(function() { return "so will this"; });

// ["this will get returned", "so will this"]
var_dump($list());

Existing callbacks can be manipulated:

// Clear the list
$list->clear();

// Or add a callback with a name
$list->add(function($greeting) { "$greeting, world!"; }, 'greeter');

// And then remove by that name
$list->remove('greeter');

And you can inspect the content of the list:

// Return a single named callback
$list->get('greeter');

// Return everything as an array
$list->getAll();