程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了允许PHP应用程序使用插件的最佳方法大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决允许PHP应用程序使用插件的最佳方法?

开发过程中遇到允许PHP应用程序使用插件的最佳方法的问题如何解决?下面主要结合日常开发的经验,给出你关于允许PHP应用程序使用插件的最佳方法的解决方法建议,希望对你解决允许PHP应用程序使用插件的最佳方法有所启发或帮助;

您可以使用观察者模式。实现此目的的简单功能方法:

<?PHP

/** Plugin system **/

$Listeners = array();

/* Create an entry point for plugins */
function hook() {
    global $Listeners;

    $num_args = func_num_args();
    $args = func_get_args();

    if($num_args < 2)
        trigger_error("InsufficIEnt arguments", E_USER_ERROR);

    // Hook name should always be first argument
    $hook_name = array_shift($args);

    if(!isset($Listeners[$hook_name]))
        return; // No plugins have registered this hook

    foreach($Listeners[$hook_name] as $func) {
        $args = $func($args); 
    }
    return $args;
}

/* Attach a function to a hook */
function add_Listener($hook, $function_name) {
    global $Listeners;
    $Listeners[$hook][] = $function_name;
}

/////////////////////////

/** Sample Plugin **/
add_Listener('a_b', 'my_plugin_func1');
add_Listener('str', 'my_plugin_func2');

function my_plugin_func1($args) {
    return array(4, 5);
}

function my_plugin_func2($args) {
    return str_replace('sample', 'CRAZY', $args[0]);
}

/////////////////////////

/** Sample Application **/

$a = 1;
$b = 2;

List($a, $b) = hook('a_b', $a, $b);

$str  = "This is my sample application\n";
$str .= "$a + $b = ".($a+$b)."\n";
$str .= "$a * $b = ".($a*$b)."\n";

$str = hook('str', $str);
echo $str;
?>

This is my CRAZY application
4 + 5 = 9
4 * 5 = 20

对于此示例源代码,必须在要扩展的实际源代码之前声明所有插件。我提供了一个示例,说明如何处理传递给插件的单个或多个值。最困难的部分是编写实际文档,该文档列出了传递给每个挂钩的参数。

这只是在PHP中完成插件系统的一种方法。有更好的选择,我建议您查看wordpress文档以获取更多信息。

解决方法

我正在用PHP启动一个新的Web应用程序,这次我想创建一些可以通过使用插件界面扩展的东西。

如何将“挂钩”写入其代码,以便插件可以附加到特定事件?

大佬总结

以上是大佬教程为你收集整理的允许PHP应用程序使用插件的最佳方法全部内容,希望文章能够帮你解决允许PHP应用程序使用插件的最佳方法所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: