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;
$callback = new Callback(
function () {
// My callable content.
}
);
$callback = new Callback(array($object, 'methodName'));
$callback = new Callback('my_function');
$callback = new Callback('str_replace');
There are many ways you can execute the callable.
$callback->invoke($arg1, $arg2, $arg3);
$callback->invokeArguments($arrayArguments);
$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
}
);
$callable->invokeArguments(
array(
'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);