nabeghe/hooker

A simple hook system library (actions and filters) based on Symfony EventDispatcher.

0.2.0 2024-09-19 18:03 UTC

This package is auto-updated.

Last update: 2024-09-19 18:12:01 UTC


README

A simple hook system library (actions and filters) based on Symfony EventDispatcher.

🫡 Usage

🚀 Installation

You can install the package via composer:

composer require nabeghe/hooker

Examples

Check the examples folder in the repositiry.

Action

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']);

Filter:

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