PHPFluent\Callback
, (*1)
Allows you execute callbacks in a more dynamic way., (*2)
Installation
The package is available on Packagist. You can install it using
Composer., (*3)
composer require phpfluent/callback
Dependencies
Usage
All examples within this document assume you have the following statement at the beginning of the file:, (*4)
use PHPFluent\Callback\Callback;
Define your callable
Closures
$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., (*5)
invoke()
$callback->invoke($arg1, $arg2, $arg3);
invokeArguments()
$callback->invokeArguments($arrayArguments);
__invoke()
$callback($arg1, $arg2, $arg3); // call_user_func() and call_user_func_array() will work like a charm
Arguments
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., (*6)
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., (*7)
Names
Callback
will execute your callback based on its parameters name., (*8)
$callable = new Callback(
function ($foo, $bar = true) {
// My callable body
}
);
$callable->invokeArguments(
array(
'foo' => 'PHPFluent',
)
);
Types
Doesn't matter the order of the arguments, Callback
will put it in the right order before execute your callable., (*9)
$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);