打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
PHP中插件机制的一种实现方案
 PHP中插件机制的一种实现方案

作者:fimmuhu 时间: 2009-11-03 文档类型:原创 来自:蓝色理想

第 1 页 PHP中插件机制的一种实现方案 [1]
第 2 页 PHP中插件机制的一种实现方案 [2]
第 3 页 PHP中插件机制的一种实现方案 [3]

下面是一个简单插件的实现。

<?
/**
* 这是一个Hello World简单插件的实现
*
* @package        DEMO
* @subpackage    DEMO
* @category    Plugins
* @author        Saturn
* @link        http://www.cnsaturn.com/
*/
/**
*需要注意的几个默认规则:
*    1. 本插件类的文件名必须是action
*    2. 插件类的名称必须是{插件名_actions}
*/
class DEMO_actions
{
    //解析函数的参数是pluginManager的引用
    function __construct(&$pluginManager)
    {
        //注册这个插件
        //第一个参数是钩子的名称
        //第二个参数是pluginManager的引用
        //第三个是插件所执行的方法
        $pluginManager->register('demo', $this, 'say_hello');
    }
    
    function say_hello()
    {
        echo 'Hello World';
    }
}
?>

这是一个简单的Hello World插件,用于输出一句话。在实际情况中,say_hello可能包括对数据库的操作,或者是其他一些特定的逻辑,比如调用Akimet API。

插件实现的默认规则由核心系统开发者自行确定。比如本例的一些默认规则我在注释中已经写的很清楚,在此不在赘述。需要特别注意的是钩子名称不要重复。

最后一步,就是定义钩子的触发,你将钩子放在哪里,上面这个插件的方法就会在哪里出发。比如我要将say_hello放到我博客首页Index.php,那么你在index.php中的某个位置写下:

$pluginManager->trigger('demo','');

第一个参数表示钩子的名字,在本例中它是demo;第二个参数是插件对应方法的入口参数,由于这个例子中没有输入参数,所以为空。

总结

本篇文章介绍了插件机制在PHP中实现的一种方法和思路,以及我本人对插件机制的理解。初次接触这个东西,可能会比较生涩,难以理解。但是当你结合真实的例子,再想想程序的运行流程,思路可能会更清晰一些。

经典论坛交流
http://bbs.blueidea.com/thread-2948641-1-1.html

本文链接:http://www.blueidea.com/tech/program/2009/7153.asp 

出处:蓝色理想
责任编辑:bluehearts

上一页 PHP中插件机制的一种实现方案 [2] 下一页

◎进入论坛网络编程版块参加讨论

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
Foobar2000同时使用多个VST插件详解
面向异型插件机整机的结构优化设计
打造自己php的开发框架--php的MVC简单实现
PHP5.4以后新增的trait功能使用介绍
新浪微博应用开发的又一个解决方案
PHP eval函数使用介绍
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服