Allows you execute callbacks in a more dynamic way

1.1.0 2015-06-03 19:24 UTC

This package is auto-updated.

Last update: 2023-01-24 00:50:28 UTC


Build Status Code Quality Code Coverage Latest Version Total Downloads License

Allows you execute callbacks in a more dynamic way.


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

composer require phpfluent/callback


  • PHP 5.4+


All examples within this document assume you have the following statement at the beginning of the file:

use PHPFluent\Callback\Callback;

Define your callable


$callback = new Callback(
    function () {
        // My callable content.

Object methods

$callback = new Callback(array($object, 'methodName'));

User defined functions

$callback = new Callback('my_function');

PHP native functions

$callback = new Callback('str_replace');

Executing your callable

There are many ways you can execute the callable.


$callback->invoke($arg1, $arg2, $arg3);




$callback($arg1, $arg2, $arg3); // call_user_func() and call_user_func_array() will work like a charm


If you're reading this document you may be wondering why this library was written since everything written on it is already possible just using native PHP features.

This library provides more flexibility when defining the arguments to be used when you call your callback. That's useful when you working with callbacks in a predefined structure but you don't want all arguments.


Callback will execute your callback based on its parameters name.

$callable = new Callback(
    function ($foo, $bar = true) {
        // My callable body
        'foo' => 'PHPFluent',


Doesn't matter the order of the arguments, Callback will put it in the right order before execute your callable.

$callable = new Callback(
    function (array $array, TypeTwo $typeTwo, $string, $int, TypeThree $typeThree, $optional = 42) {
        // My callable body
$callable(array(), new TypeTwo(), new TypeThree(), 'string', 123);