gpt4 book ai didi

php - 如何使用 PHP 制作类似插件的 Web 应用程序?

转载 作者:可可西里 更新时间:2023-10-31 22:06:34 24 4
gpt4 key购买 nike

计算器溢出!

我正在寻找一种使用 PHP 制作类似插件(我不知道如何调用它)的 Web 应用程序的方法。我的意思是我想创建一个系统,用户可以通过浏览器(而不是通过向配置添加一些代码)添加/删除插件(扩展,如果你愿意)。在我看来,WordPress 就是一个很好的例子。最终用户可以简单地安装任何类型的插件,几乎什么也不做,它们就会按预期工作,而且通常需要更改很多设置等等。

另外,我很乐意让它尽可能地可用。我的意思是一个插件可以使用其他插件的一部分,因此重写的代码更少。例如,有用于授权/认证的插件以及与用户相关的所有其他内容。然后,有用于博客的插件。博客,当然需要前面提到过吧?所以它只是使用前面提到的插件来工作。我知道会有很多依赖关系等等……但这很正常。 :)

我的问题是......我可以用什么技术来完成它?这种制度有什么优缺点?我认为它会慢一点,并且不适合像 Facebook 这样的非常大的网站(好吧,这实在是太大了),但是对于简单的博客、投资组合,不管怎样它都会很好!

我听说过事件驱动编程(或基于事件的编程)并且我读过有关它的文章 on Wikipedia ,但仍然......我很困惑,更不确定这就是我要找的东西。

感谢阅读本文。如果可能的话,给我一些答案。 :D

最佳答案

有多个问题需要考虑。正如您所指出的,插件系统依赖于向应用程序注册扩展,而扩展本身需要一种挂接到主应用程序的方法。

尽管存在种种缺陷,但 Wordpress 对此有一个非常可行的方法。它uses "hooks"用于连接插件。这基本上是一个回调系统,或多或少也可以构成“事件驱动”。从根本上说,主应用程序会执行以下操作:

foreach ($callback["need_to_render_sidebar"] as $fn) {
$fn();
}

但是您可以通过传递额外参数、返回数据以及更重要的方式使它更加灵活:使用对象而不是过程回调来实现更复杂的功能。 (我建议混合搭配。没有一种方法适合所有应用程序或扩展。)

同样,插件系统通常使扩展本身能够回调主应用程序、向其中提供数据或修改设置。

对于插件系统,您需要考虑的第二部分是如何使其易于管理。基本上每个 WebCMS/DMS 都有自己的方法。许多使用手动提取的 zip 文件或模块目录。对于初学者来说,元数据增强脚本文件的类 WP 方法是最合适的。我做了一个类似的系统,可以独立于 WP 使用,虽然它很粗糙:http://milki.include-once.org/genericplugins/ (好的部分实际上是设置的可管理性。)

关于php - 如何使用 PHP 制作类似插件的 Web 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6995300/

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