slexx / callback
Allows you execute callbacks in a more dynamic way
Requires (Dev)
- phpunit/phpunit: ^6.2
This package is auto-updated.
Last update: 2024-10-27 06:44:10 UTC
README
Установка
$ composer require slexx/callback
Базовое использование
Класс позволяет вызывать методы других классов, для вызого статичного метода используется синтаксис вида ПространствоИмён\ИмяКласса::имяМетода
, для вызова других ПространствоИмён\ИмяКласса->имяМетода
.
use Slexx\Callback\Callback; $callback1 = new Callback('\NameSpace\ClassName::staticMethod'); $callback2 = new Callback('\NameSpace\ClassName->method');
Класс ещё умеет работать с callable
.
use Slexx\Callback\Callback; $callback1 = new Callback([$object, 'method']); $callback2 = new Callback(function($name) { return 'Hello, ' . $name . '!'; });
Для вызова класса есть несколько методов invoke
и invokeArgs
второй принимает массив аргументов.
use Slexx\Callback\Callback; $callback = new Callback(function($name) { return 'Hello, ' . $name . '!'; }); echo $callback->invoke('Alex') . '<br>'; echo $callback->invokeArgs(['Alex']) . '<br>'; echo $callback('Alex');
API
getClass
Возвращает: mixed|null|string
- Объект класса если в конструктор был переданн массив с объектом, имя класса или null
в случае отсуцтвия класса.
getType
Возвращает: null|string
- Вернёт ::
если метод статичный. Если метод не является статичным ->
. В любых других случаях null
getMethod
Возвращает: object|string
- Имя метода или замыкание.
invokeArgs
Вызывает метод или функцию с передаваемым массивом аргументов.
$callback = new Callback(function($arg1, $arg2) { var_dump(func_get_args()); }); $callback->invokeArgs(['arg1', 2]);
invoke
Вызывает метод или функцию.
$callback = new Callback(function($arg1, $arg2) { var_dump(func_get_args()); }); $callback->invoke('arg1', 2);
__invoke
Магический метод позволяющий использовать класс как обычное замыкание.
$callback = new Callback(function($arg1, $arg2) { var_dump(func_get_args()); }); $callback('arg1', 2);