查看完整版本: Magike中的插件安装脚本粗解 (一)

aiyuwei125 2008-4-16 10:20

Magike中的插件安装脚本粗解 (一)

Magike的插件采用类似于WordPress的钩子方式,每个插件的安装脚本都继承于 MagikePlugin (/core/lib/helper/lib.magike_plugin.php)。

而在 Magike 后台里面的插件功能管理中,通过搜索 /data/plugins 目录下的子目录来实现自动发现可能安装的插件,在发现可能安装的插件以后,再搜索 plugin.*.php 是否存在,如果该文件存在,再尝试通过调用其中的静态方法 information() 来获取该插件的相关信息。并且在 Magike 后台插件管理中的激活、禁用功能分别通过实例化该类里面的 activate() 方法和 deactivate() 方法来实现。


因此,从上边的 Magike 插件发现思路,我们不难看出,我们要制作一个插件,首先应该有以下步骤:

在 /data/plugins 中新建一个目录,用于保存插件的所有文件

建立一个名称类似于 plugin.tag_keyword.php 的文件

在 plugin.tag_keyword.php 文件中包括一个名为 TagKeywordPlugin 的类

TagKeywordPlugin 类中应该包括 information()、activate() 和 deactivate() 这三个方法,其中 information() 应该是一个静态方法

然后咱们接着来看代码的实现。

Magike 在其核心中为插件的管理提供了一系列的方法来达到统一管理的目的。这些方法包括了:

fastPatch() : 快速注入插件

fastUnPatch() : 快速解除插件注入

addStaticValue() : 添加静态(全局缓存)变量

removeStaticValue() : 删除已添加的静态变量

clearCache() : 强制清除缓存

addPath() : 向路径表添加记录

removePath() : 从路径表中删除记录

addMenu() : 添加菜单条目

removeMenu() : 删除菜单条目

而提供这些方法的就是位于 /core/lib/helper/lib.magike_plugin.php 中的 MagikePlugin。因此我们的插件安装类应该继承于 MagikePlugin。MagikePlugin 是一个抽象类,它并不能被实例化,其中的 activate()、deactivate() 两个方法为抽象方法。

综上,我们的插件安装类雏形代码就出现了:

[code]
<?php
class TagKeywordPlugin extends MagikePlugin
{
    public function __construct()
    {
        parent::__construct();
    }

    public function activate()
    {
    }

    public function deactivate()
    {
    }

    public static function information()
    {
        return array(
            'name'      => '插件名称',
            'description' => '插件描述',
            'version' => '插件版本',
            'author'  => '插件作者',
            'homepage'=> '插件作者主页'
        );
    }
}
?> [/code]

在安装类雏形代码出来以后,接下来就是首先书写我们的插件实现了。

接下来的内容我们明天再继续。。。

文/feeling
[url=http://www.hi-open.cn/index.php/archives/8/#comment-3]原文点击查看[/url]

70 2008-4-16 17:30

feeling的文章写得浅显易懂,文笔流畅,非常好
页: [1]
查看完整版本: Magike中的插件安装脚本粗解 (一)