phpfluent / callback
Allows you execute callbacks in a more dynamic way
Installs: 53 812
Dependents: 1
Suggesters: 0
Security: 0
Stars: 11
Watchers: 4
Forks: 3
Open Issues: 1
Requires
- php: >=5.4.0
Requires (Dev)
- phpmd/phpmd: ~2.2
- phpunit/phpunit: ~4.6
- squizlabs/php_codesniffer: ~2.3
This package is auto-updated.
Last update: 2024-11-24 04:57:56 UTC
README
Allows you execute callbacks in a more dynamic way.
Installation
The package is available on Packagist. You can install it using Composer.
composer require phpfluent/callback
Dependencies
- PHP 5.4+
Usage
All examples within this document assume you have the following statement at the beginning of the file:
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.
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.
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.
Names
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', ) );
Types
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);