gpt4 book ai didi

php - 插件系统如何工作(wordpress、mybb ...)?

转载 作者:IT王子 更新时间:2023-10-29 00:04:22 25 4
gpt4 key购买 nike

我很好奇插件是如何工作的,我只知道我们使用插件而不是更改代码,但是他们如何在不更改代码的情况下完成工作?编码人员在编写新项目时应该考虑什么才能拥有插件?非常感谢你 :D

最佳答案

关于如何实现插件系统有多种变体。 Wordpress 使用一种非常常见的方案,通常被称为“钩子(Hook)”。我不知道确切的实现,但它基本上是这样工作的:

// plugin.php script registers its own callback function
register_plugin("hook_type", "plugin_function_123");

function plugin_function_123($params) { ... }

hook_type 通常是 Action 名称或其他名称。当主应用程序运行到特定点(或者例如需要处理一些数据)时,它会调用所有已注册的回调函数:

$output = call_plugins("hook_type", $param1, $param2);

这通常作为一个简单的循环在幕后实现:

foreach ($registered_plugins[$action] as $func) {
$func($param1, $param2, ...); // or call_user_func_
}

现在它取决于 Hook / Action 类型存在哪些参数,以及是否需要任何结果文本。参数传递也有差异(例如,一些回调需要 &$var 引用)。一些插件系统反而依赖于对象(如果不存在那么多不同的 Action 类型或要使用更复杂的结构)。

关于php - 插件系统如何工作(wordpress、mybb ...)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5127424/

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