PHP中的插件架构

Erw*_*win 5 php architecture plugins

我正计划研究如何在PHP中实现插件架构.我已经尝试在网上搜索可能的参考资料,但我想如果我在这里问的话,我可能会更快更有意义地寻找一个好参考.

有没有人尝试过使用插件架构进行网络项目?

谢谢,欧文

roo*_*ook 4

我已经编写了 WordPress 插件,它们所依赖的魔力是“变量函数名称”。例如,这是有效的 php,其中将调用函数调用 phpinfo():

$func_name="phpinfo";
$func_name();
Run Code Online (Sandbox Code Playgroud)

这允许开发人员“挂钩”函数调用,就像用自己的函数覆盖它们一样,而无需更改应用程序的其余部分。Linux 内核模块都是关于“挂钩”的,没有这种行为它们就无法工作。

不幸的是,对于 PHP 来说,变量函数名是一种令人厌恶的黑客行为,会消耗大量资源。命名空间中的所有函数都放在一个列表中,尽管在调用函数之前必须搜索该列表,但时间复杂度为 O(log2(n))。另请记住,尽管代码仍会转换为有效的 C++,但变量函数名称无法在 HipHop 中正确加速。更好的方法是像在 python 中一样重新声明函数,这将是 O(1) 复杂性,但 PHP 开发团队讨厌这个想法(是的,我已经要求了这个功能!)。

祝你好运!

  • @davr 如果您能提出更好的解决方案,整个 PHP 社区都会很高兴听到它。 (5认同)
  • 在我看来,这是一个可怕的方法。 (3认同)