kigkonsult / hookmgr
PHP 钩子调用管理器
v1.4
2021-11-02 14:05 UTC
Requires
- php: >=8.0
Requires (Dev)
- phpstan/phpstan: >=0.9.3
- phpunit/phpunit: >=6.5.14
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 许可协议