kigkonsult/hookmgr

PHP 钩子调用管理器

资助包维护!
其他

v1.4 2021-11-02 14:05 UTC

This package is auto-updated.

Last update: 2024-08-29 05:25:01 UTC


README

类 HookMgr 管理PHP钩子

钩子是调用可调用项的(HookMgr)键

可调用项可以是

  • 简单函数
  • 匿名函数
  • 实例化对象+方法:[ $object, 'methodName' ]
  • 类名和静态方法:[ 'namespaceClassName', 'methodName' ]
  • 实例化对象,具有(魔法)__call 方法的类:[ $object, 'someMethod' ]
  • 类名,具有(魔法)__callStatic 方法的类:[ 'namespaceClassName', 'someMethod' ]
  • 实例化对象,具有(魔法)__invoke 方法的类:$object

使用可调用项定义钩子

HookMgr::addAction( $hook, $callable );

使用钩子调用可调用项

$result = HookMgr::apply( $hook );
方法

HookMgr::addAction( hook, callable )

  • 添加单个钩子与单个可调用项,syntax_only 可调用项检查
  • hook 字符串
  • callable 可调用项
  • 抛出 InvalidArgumentException
  • 静态

HookMgr::addActions( hook, callables )

  • 添加单个钩子调用可调用项数组
  • 注意,如果带有参数调用,则参数用于所有可调用项
  • hook 字符串
  • callables 可调用项[]
  • 抛出 InvalidArgumentException
  • 静态

HookMgr::setActions( actions )

  • 设置所有钩子,每个钩子用于调用单个或可调用项数组
  • actions 数组 *( hook => callable(s) )
  • 抛出 InvalidArgumentException
  • 静态

HookMgr::apply( hook [, args ] )

  • 调用 'hook' 动作,返回(最后)结果
  • hook 字符串
  • args 数组 可选,[ arg1, arg2... ]
    • 可选参数在所有钩子调用中使用
    • 要使用引用参数,请使用 HookMgr::apply( 'hook', [ & $arg ] );
  • 返回 mixed
  • 抛出 RuntimeException
  • 静态

HookMgr::count( hook )

  • 返回钩子的可调用项数量,未找到返回 0
  • hook 字符串
  • 返回 bool
  • 静态

HookMgr::exists( hook )

  • 返回 bool true 如果钩子已设置
  • hook 字符串
  • 返回 bool
  • 静态

HookMgr::getCallables( hook )

  • 返回钩子的可调用项数组,未找到返回 []
  • hook 字符串
  • 返回 callable[]
  • 静态

HookMgr::getHooks()

  • 返回 数组 (string[]) 钩子
  • 静态

HookMgr::init()

  • 清除(删除)所有具有可调用项的钩子
  • 静态

HookMgr::remove( hook )

  • 删除单个钩子及其可调用项
  • hook 字符串
  • 静态

HookMgr::toString()

  • 返回 字符串 漂亮的渲染钩子及其可调用项
  • 静态
赞助

使用 paypal.me/kigkonsult 进行捐赠受到赞赏。对于发票,请发送电子邮件

安装
composer require kigkonsult/hookmgr:dev-master

Composer,在你的 composer.json

{
    "require": {
        "kigkonsult/hookmgr": "dev-master"
    }
}

版本 1.4 支持 PHP 8,1.2 支持 7.4,1.1 支持 7.0。

Composer,获取访问权限

use Kigkonsult\HookMgr\HookMgr;
...
include 'vendor/autoload.php';

否则,下载并获取...

use Kigkonsult\HookMgr\HookMgr;
...
include 'pathToSource/kigkonsult/HookMgr/autoload.php';
支持

有关支持,请访问 github.com HookMgr

许可

本项目许可协议为 LGPLv3 许可协议