Skip to content

Pollora/hook

Repository files navigation

Pollora Hook

A modern PHP package for WordPress hook (action/filter) management with callback resolution and reflection caching.

Installation

composer require pollora/hook

Quick Start

use Pollora\Hook\Action;
use Pollora\Hook\Filter;

$action = new Action;
$filter = new Filter;

// Register action
$action->add('init', function () {
    // runs on WordPress init
});

// Register filter
$filter->add('the_content', function (string $content): string {
    return $content . '<p>Appended!</p>';
});

// Execute action
$action->do('my_custom_action', $arg1, $arg2);

// Apply filter
$filtered = $filter->apply('my_filter', $value);

// Remove hook
$action->remove('init', $callback);

Pollora framework users: When the framework is available, prefer the Laravel facades Pollora\Support\Facades\Action and Pollora\Support\Facades\Filter for full DI container support. A notice is emitted if you use the standalone classes within the framework.

Class-based Callbacks

// Class with method matching hook name (StudlyCase convention)
$action->add('wp_loaded', MyInitializer::class);
// Resolves to [new MyInitializer, 'wpLoaded']

// With dependency injection
$action->setCallbackResolver($myResolver);
$action->add('wp_loaded', MyInitializer::class);
// Resolves via $myResolver->resolve(MyInitializer::class)

Documentation

See docs/hooks.md for full documentation.

Testing

composer test

License

GPL-2.0-or-later

About

A modern PHP package for WordPress hook (action/filter) management with callback resolution and reflection caching

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages