抛砖引玉之文,仅为即将发布的1.2.0做铺垫。具体的技术文档,请关注wiki的相关章节。在本文中我以如何制作一个显示评论表情插件为例,希望能对大家的开发有所帮助。此文首先假定你有基本的PHP知识,以及面向对象编程的基础。

声明一个插件

为了让系统识别你的插件,你需要声明这个插件。在Magike中,你只需要在./data/plugins下面建立一个插件目录,并在此插件目录下建立一个与目录同名的插件声明文件,并实现相应的方法即可。比如在本例中我们要制作一个表情插件,那么首先在./data/plugins下面建立一个名为emotion的目录,并在此目录下创建名为plugin.emotion.php的文件,这就是我们插件的声明文件,让我们看看在这个文件应该干些什么。

class EmotionPlugin extends MagikePlugin
{
    public function activate()
    {
        $this->fastPatch('callback','callback.emotion.php');
        $this->fastPatch('template','emotion.tpl');
        $this->clearCache();
    }
    
    public function deactivate()
    {
        $this->fastUnPatch('callback','callback.emotion.php');
        $this->fastUnPatch('template','emotion.tpl');
        $this->clearCache();
    }
    
    static public function information()
    {
        return 
        array(
            'name'	  => '表情插件',
            'description' => '在评论中插入表情.',
            'version' => '0.0.1',
            'author'  => 'Joyqi',
            'homepage'=> 'http://www.joyqi.com',
        );
        }
    }
}

请注意,在Magike中编程是必须遵循严格的命名规则的,比如此文件名为plugin.emotion.php,那么它类名就必须为EmotionPlugin。类名采用骆驼法则,文件名采用下划线法则来分隔单词。在这个类中我们实现了三个方法,这也是其继承的父类MagikePlugin中声明必须实现的虚函数。这三个方法分别是:

  • activate,用于激活此插件。

  • deactivate,用于禁用此插件。

  • information,必须声明为静态方法,用于获取插件信息。

值得注意的是MagikePlugin类继承自MagikeModule类,所以你可以在方法中调用MagikeModule提供的方法,比如通过model实现复杂的数据库操作,等等。当我们实现了这三个方法之后,在后台的插件列表中就可以看到我们的插件了。