alizharb/hookx 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

alizharb/hookx

最新稳定版本:v1.1.0

Composer 安装命令:

composer require alizharb/hookx

包简介

A next-generation, high-performance PHP 8.3+ hook and event system with async support.

README 文档

README

Latest Version on Packagist GitHub Tests Action Status Total Downloads License

HookX is a next-generation, high-performance PHP hook and event system designed for modern applications. Built on PHP 8.3+, it leverages Attributes, Fibers, and Strong Typing to deliver a developer experience that is both powerful and elegant.

✨ Features

  • Zero-Dependency: Pure PHP implementation, no external bloat.
  • Async & Background Hooks: Run hooks in Fibers or push them to a Queue (Redis/Sync) using #[Async] and #[Background] attributes.
  • Framework Integrations: Native support for Laravel and Symfony.
  • Developer Experience: CLI tool (bin/hookx), REPL, and global helpers (hook(), filter()).
  • Advanced Matching: Wildcards (user.*) and Regex (#^order\.(created|updated)$#) support.
  • Safety: Immutable context, strict mode, and sandbox execution with time/memory limits.
  • Performance: JIT compilation (experimental) and Zero-Copy dispatching.

📋 Requirements

  • PHP 8.3 or higher

📦 Installation

Install the package via Composer:

composer require alizharb/hookx

Documentation

Quick Start

Installation

composer require alizharb/hookx

Basic Usage

use AlizHarb\Hookx\Attributes\Hook;
use AlizHarb\Hookx\Context\HookContext;

class UserListener
{
    #[Hook('user.registered')]
    public function onRegister(HookContext $context): void
    {
        echo "User registered: " . $context->getArgument('email');
    }
}

// Register
$manager->registerObject(new UserListener());

// Dispatch
$manager->dispatch('user.registered', [
    'user' => ['name' => 'Alice', 'email' => 'alice@example.com']
]);

⚡ Async & Background Hooks

HookX supports both concurrent execution (Fibers) and true background processing (Queues).

use AlizHarb\Hookx\Async\AsyncHookDispatcher;

$dispatcher = new AsyncHookDispatcher($manager);

// Dispatches in background using Fibers
$dispatcher->dispatchAsync('email.send', [
    'to' => 'user@example.com',
    'subject' => 'Welcome!'
]);

For true background processing via Redis, check the Async Documentation.

📚 Documentation

For comprehensive documentation, check the docs/ directory:

🧪 Testing

Run the test suite:

composer test

📄 License

The MIT License (MIT). Please see License File for more information.

Made with ❤️ by Ali Harb

统计信息

  • 总下载量: 5
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2025-11-26