slexx / callback
Allows you execute callbacks in a more dynamic way
Installs: 10
Dependents: 0
Suggesters: 0
Security: 0
Stars: 2
Watchers: 0
Forks: 0
Open Issues: 0
pkg:composer/slexx/callback
Requires (Dev)
- phpunit/phpunit: ^6.2
This package is auto-updated.
Last update: 2025-10-27 08:56:39 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);