我正计划研究如何在 PHP 中实现插件架构。我曾尝试在网上搜索可能的引用资料,但我认为如果我在这里询问,也许我搜索好的引用资料会更快、更相关。
这里有没有人尝试过在 Web 项目中使用插件架构?
谢谢, 欧文
最佳答案
我写过 wordpress 插件,它们所依赖的魔法是“可变函数名”。例如,这是有效的 php,其中将调用函数调用 phpinfo():
$func_name="phpinfo";
$func_name();
这允许开发人员“ Hook ”函数调用,就像在不更改应用程序其余部分的情况下用自己的函数覆盖它们一样。 Linux 内核模块都是关于“ Hook ”的,没有这种行为它们将无法工作。
不幸的是,对于 PHP 来说,变量函数名是一种令人作呕的 hack,它会消耗大量资源。 namespace 中的所有函数都放在一个列表中,并且必须在调用函数之前搜索该列表,这是 O(log2(n))。另请记住,虽然代码仍将转换为有效的 C++,但变量函数名称无法在 HipHop 中正确加速。更好的方法是像在 python 中那样重新声明函数,这将是 O(1) 复杂度,但是 PHP 开发团队讨厌这个想法(是的,我已经要求这个功能了! ).
祝你好运!
关于php - PHP 中的插件架构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2315289/