A simple hook system library (actions and filters) based on Symfony EventDispatcher.
You can install the package via composer:
composer require nabeghe/hooker
Check the examples folder in the repositiry.
require 'vendor/autoload.php';
use Nabeghe\Hooker\Hooker;
use Nabeghe\Hooker\Action;
$hooker = new Hooker();
$hooker->setDefaultArgToHooks('protocol', 'https://');
$hooker->listen('your_custom_action_name', function (Action $action) {
echo $action['protocol'].$action['url'].PHP_EOL;
}, 2);
$hooker->action('your_custom_action_name', ['url' => 'https://github.com/nabeghe/hooker']);
require 'vendor/autoload.php';
use Nabeghe\Hooker\Hooker;
use Nabeghe\Hooker\Filter;
$hooker = new Hooker();
$hooker->listen('your_custom_action_name', function (Filter $filter) {
if ($filter->getValue() === null) {
$filter->setValue(8 + $filter['default']);
}
});
$value = $hooker->filter('your_custom_action_name', null, ['default' => 5]);
echo $value; // 13