插件入口文件

每个插件都有一个入口文件,命名方式为插件名称.php,这里以HelloWorld为例。

插件目录

在addons目录下建立一个新插件目录hello_world,再新建一个HelloWorld.php的入口文件。

目录名以小写字母和下划线命名 入口文件使用驼峰法命名(首字母大写)

addons
├─hello_world
│  │  HelloWorld.php

插件入口文件

入口文件方法

插件有一个独立的顶级命名空间”addons“,所有插件入口文件必须继承\app\common\controller\Addons,并且必须实现两个方法:install()和uninstall()。

比如:


namespace addons\hello_world;
use app\common\controller\Addons;

/**
 * 演示插件
 */
class HelloWorld extends Addons
{
    /**
     * 安装方法必须实现
     */
    public function install(){
        return true;
    }

    /**
     * 卸载方法必须实现
     */
    public function uninstall(){
        return true;
    }
}

入口文件属性

/**
* @var array 插件基本信息
*/
public $info

/**
* @var string 原数据库表前缀
* 用于在导入插件sql时,将原有的表前缀转换成系统的表前缀
* 一般插件自带sql文件时才需要配置
*/
public $database_prefix

/**
* @var array 插件钩子
*/
public $hooks

/**
* @var array 插件管理方法,格式:['控制器/操作方法',[参数数组]])
*/
public $admin_actions

1、需要定义插件的相关信息$info参数。 2、如果开启后台管理功能,需要配置$admin_actions,也就是说

当$info['admin']=1的时候需要配置$admin_actions

示例

namespace addons\hello_world;
use app\common\controller\Addons;

/**
 * 演示插件
 */
class HelloWorld extends Addons
{
	/**
	* @var array 插件信息
	*/
	public $info = [
		//插件名[必填,不可重复]
		'name'        => 'HelloWorld',
		//插件标题[必填]
		'title'       => 'HelloWorld',
		//插件介绍
		'intro'       => 'HelloWorld',
		//插件描述[必填]
		'description' => 'HelloWorld',
		//插件状态[选填],1为默认开启状态,0默认禁用状态
		'status'      => 1,
		//插件作者[必填]
		'author'      => 'yfcmf',
		//插件版本[必填],格式采用三段式:主版本号.次版本号.修订版本号
		'version'     => '1.0.0',
		//是否有后台管理功能[必填]
		'admin'       => '1',
	];

	/**
	* @var array 插件管理方法,格式:['控制器/操作方法',[参数数组]])
	*/
	public $admin_actions = [
		'index'  => ['Admin/securityList'],//管理首页
		'config' => [],//设置页
		'edit'   => [],//编辑页
		'add'    => [],//增加页
	];

	/**
	* @var array 插件钩子
	*/
	public $hooks = [
		// 钩子名称 => 钩子说明
		'sysinfo' => '框架信息钩子'
	];

	/**
	* 安装方法必须实现
	*/
	public function install(){
		return true;
	}

	/**
	* 卸载方法必须实现
	*/
	public function uninstall(){
		return true;
	}
}

定义好之后,就可以进入后台->系统->扩展管理->插件管理,进行安装了。