gpt4 book ai didi

php - 我将如何构建一个像这样工作的简单 php 钩子(Hook)系统?

转载 作者:可可西里 更新时间:2023-11-01 13:11:22 25 4
gpt4 key购买 nike

我正在尝试找出一种方法来构建一个与 Drupal 使用的 Hook 系统非常相似的 Hook 系统。使用 Drupal,您可以简单地以某种方式命名一个函数,如果启用了该模块,它将作为一个 Hook 自动调用。

我查看了 Stackoverflow 上的其他答案,但没有一个真正给出如何将此类功能构建到 PHP 应用程序中的答案。

最佳答案

这就是 drupal 的工作方式,您也可以这样做。使用具有名称约定的字符串连接。使用 function_exists() 和 call_user_func_array() 你应该准备就绪。

这里有两个内部 drupal 函数,可以解决这个问题 (module.inc)

function module_invoke() {
$args = func_get_args();
$module = $args[0];
$hook = $args[1];
unset($args[0], $args[1]);
$function = $module .'_'. $hook;
if (module_hook($module, $hook)) {
return call_user_func_array($function, $args);
}
}

function module_hook($module, $hook) {
return function_exists($module .'_'. $hook);
}

因此,你只需要调用

module_invoke('ModuleName','HookName', $arg1, $arg2, $arg3);

最终会调用

ModuleName_HookName($arg1,$arg2,$arg3);

关于php - 我将如何构建一个像这样工作的简单 php 钩子(Hook)系统?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12486684/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com