第三章插件的文件代码结构

501771728   ·  1个月前   ·   插件开发手册

上一章我们已经学习了制作好的插件该放到哪里,这章我们将继续学习实际代码是如何编写的。


或许有朋友看到要自己编写代码会觉得头都大了,没关系,我们还是会秉承简单的原则,以使您的工作变得尽量简单,当然您还是需要具备基本的php编程基础的。


让我们开始吧!


我们先来看一下插件文件的结构:


<?php
/**
 * 插件名: 公告
 * 描述: 公告插件可以在首页的顶部显示一条公告
 * 作者: A.J
 * 版本: V1.0
 * 插件网址: www.catfish-cms.com
 * 适用: cms
 */
namespace app\plugins\announcement; //命名空间

use app\common\Plugin; //父类

class Announcement extends Plugin //继承父类
{
    private $plugin = 'announcement'; //设置插件名
    public function open(&$params)
    {
        $this->statement('Catfish cms plugin');//声明鲶鱼cms插件
        //插件开启时执行的其他代码
        ......
    }
    public function close(&$params)
    {
        //插件被关闭时执行代码
        ......
    }
    public function settings(&$params)
    {
        //后台设置,表单页代码
        ......
    }
    public function settings_post(&$params)
    {
        //后台设置,表单提交代码
        ......
    }

    //其他功能代码
    ......
}

最上面是注释,这个注释也很重要啊,不要偷懒不写,不然使用您开发的插件的朋友就不知道这个插件是干什么用的了。


注释的格式是固定的,上面列出的几项注释内容建议都填写,当然您还可以添加其他注释,或者偷懒少写几项。


要额外说明一下的是“适用”这行,这是说明这个插件适用于哪个系统,如果只适用于CMS系统的话,那么后面就填写“cms”,这里注意要小写。如果只适用于Blog系统的话,那么后面就填写“blog”,也是小写。如果您做的插件是通用型的,那么请填写“all”,同样是小写。


上面的例子是用中文写注释的,您也可以用英文写您的注释,如下:


/**
 * Plugin Name: 公告
 * Description: 公告插件可以在首页的顶部显示一条公告
 * Author: A.J
 * Version: V1.0
 * Plugin URI: www.catfish-cms.com
 * Appliance: cms
 */

您可以直接复制然后粘贴过去,再修改一下就可以了。


注释写完了,就要写命名空间了。就是注释下面第一行代码。


namespace app\plugins\announcement;

把上面灰色部分换成您的插件名称,就是放在“plugins”文件夹下的插件文件夹名称。名称一定要和文件夹相同哦,不然会出错!


例如上面这行代码就和存放文件的文件夹相同:

灰色部分是不是和文件夹名一样。


有朋友说不知道什么是命名空间,没关系,直接复制过去,然后修改一下就行了。


命名空间写好了,接下去就是引入父类,代码如下:


use app\common\Plugin;

这行代码直接照抄就可以了,不需要做任何修改。


然后是插件类的代码,如下:


class Announcement extends Plugin
{

    //在这里写代码
   

}
   

注意:灰色部分换成您插件的名称,并且首字母大写。这个很重要!


然后我们就可以在类的大括号内写执行代码了。


类内的第一行代码是:


private $plugin = 'announcement';

这行代码的作用是设置一个变量,变量的内容是您插件的名称,把灰色部分换成您自己插件的名称。


有了这行代码,您就可以在接下去的代码中引用插件名称,这在避免某些冲突十分有用,因为一个系统中您可能安装几个插件,而这几个插件都是由不同的人编写的,这时使用插件变量就可以很好地避免和其他插件的冲突,这是一个好的编程习惯。当然,如果您的插件只是孤芳自赏式地自己使用,您也可以偷懒一下。


有了这行代码后,在后面的代码中您就可以用“$this->plugin”来引用插件名。


再接下去是两个函数:


   public function open(&$params)
    {
       $this->statement('Catfish cms plugin'); //声明鲶鱼cms插件
        //在这里写其他代码
    }
    public function close(&$params)
    {
        //在这里写代码
    }

“open”函数是插件开启时执行的代码,您可以在这里进行一些初始化的工作。另外这个函数里面需要加一条声明语句,用来告诉系统这个插件是什么插件,如果是CMS系统的插件的话,就写上“$this->statement('Catfish cms plugin');”。如果是Blog系统的插件的话,则写上“$this->statement('Catfish blog plugin');”。如果是两个系统都可以用的通用插件的话,则写上“$this->statement('Catfish all plugin');”。


“close”函数是插件关闭时执行的代码,也就是您不打算用这个插件了,那么关闭插件的时候将进行的工作,这主要是用来做清理工作的,以免您的插件给系统留下太多垃圾。


再接下来是您插件的后台设置代码,如公告插件中,我们可以在后台写入公告的内容。代码如下:


   public function settings(&$params)
    {
        //在这里写代码
    }
    public function settings_post(&$params)
    {
        //在这里写代码
    }

“settings”函数是用来显示表单等内容的,您需要将html代码存入变量$params['view'],对了,只要存入变量$params['view'],您的后台显示工作就完成了。具体可以查看公告插件的代码。


“settings_post”函数是后台提交表单后的处理代码,这里您可以执行一些存储数据的工作,例如公告插件中的公告内容就是这个函数给存储起来的。


当然,如果您的插件不需要进行后台设置的话,那么您完全可以省略掉上面两个函数。


到现在为止,我们已经学习了插件文件的基本结构,那么怎么样把存储的公告内容显示到首页呢?


下一章我们将学习一些功能函数,用来实现公告内容显示的目的。


----------

转载至鲶鱼官方网站

版权声明
这里填写版权内容

本页地址:
一言:
0 Reply   |  Until 1个月前 | 86 View
LoginCan Publish Content
每日签到
0人
连续签到0天