每个插件都有一个入口文件,命名方式为`插件名称.php`,这里以`HelloWorld`为例。
在`addons`目录下建立一个新插件目录`HelloWorld`,再新建一个`HelloWorld.php`的入口文件。
~~~
addons
├─HelloWorld
│ │ HelloWorld.php
~~~
插件有一个独立的顶级命名空间”`addons`“,所有插件入口文件必须继承`\app\common\controllerAddons`,并且必须实现两个方法:`install()`和`uninstall()`。
比如:
~~~
<?php
namespace addons\HelloWorld;
use app\common\controller\Addons;
/**
* 演示插件
*/
class HelloWorld extends Addons
{
/**
* 安装方法必须实现
*/
public function install(){
return true;
}
/**
* 卸载方法必须实现
*/
public function uninstall(){
return true;
}
}
~~~
然后还需要定义插件的相关信息`$info`参数。
下面以阿里云短信插件为例说明
~~~
<?php
// +----------------------------------------------------------------------
// | LwwanPHP[基于ThinkPHP5.1开发]
// +----------------------------------------------------------------------
// | Copyright (c) 2016-2019 http://www.lwwan.com
// +----------------------------------------------------------------------
// | Author 似水星辰 [ 2630481389@qq.com ]
// +----------------------------------------------------------------------
// | 星辰工作室 QQ群331378225
// +----------------------------------------------------------------------
namespace addons\DySms;
use app\common\controller\Addons;
/**
* 阿里云短信插件
* @package Addons\DySms
*/
class DySms extends Addons
{
/**
* @var array 插件信息
*/
public $info = [
// 插件名[必填]
'name' => 'DySms',
// 插件标题[必填]
'title' => '阿里云短信插件',
// 插件唯一标识[必填],格式:插件名.开发者标识.plugin
'identifier' => 'dy_sms.lwwan.addons',
// 插件图标[选填]
'icon' => 'fa fa-fw fa-envelope-o',
// 插件描述[选填]
'description' => '阿里云短信插件',
// 插件作者[必填]
'author' => '星辰',
// 作者主页[选填]
'author_url' => '',
// 插件版本[必填],格式采用三段式:主版本号.次版本号.修订版本号
'version' => '1.0.0',
// 是否有后台管理功能[选填]
'admin' => '1',
];
/**
* @var array 管理界面字段信息
*/
public $admin = [
'title' => '短信模板列表', // 后台管理标题
'table_name' => 'addons_dysms', // 数据库表名,如果没有用到数据库,则留空
// 后台列表字段
'columns' => [
['title', '模板名称'],
['code', '模板ID'],
['sign_name', '短信签名'],
['status', '状态', 'status'],
['right_button', '操作', 'btn'],
],
// 右侧按钮
'right_buttons' => [
['ident'=> 'edit', 'title'=>'编辑','href'=>['edit', ['id'=>'__id__', 'name' => 'DySms']],'icon'=>'fa fa-pencil pr5','class'=>'btn btn-xs mr5 btn-success btn-flat'],
['ident'=> 'delete', 'title'=>'删除','href'=>['delete',['ids'=>'__id__', 'name' => 'DySms', 'table'=>'addons_dysms']], 'icon'=>'fa fa-times pr5','class'=>'btn btn-xs mr5 btn-danger btn-flat ajax-get confirm'],
],
// 顶部栏按钮
'top_buttons' => [
'add', // 使用系统自带的添加按钮
'enable', // 使用系统自带的启用按钮
'disable',// 使用系统自带的禁用按钮
'delete', // 使用系统自带的删除按钮
],
];
/**
* @var array 新增或编辑的字段
*/
public $fields = [
['type' => 'hidden', 'name' => 'id'],
['type' => 'text', 'name' => 'title', 'title' => '模板名称', 'tips' => '必填,自定义填写,用于区分用途,比如:注册验证、密码修改'],
['type' => 'text', 'name' => 'code', 'title' => '模板ID', '必填'],
['type' => 'textarea', 'name' => 'content', 'title' => '模板详情', 'tips' => '选填,复制的你的模板内容,以便开发时可以校对'],
['type' => 'text', 'name' => 'sign_name', 'title' => '短信签名', 'tips' => '在阿里云后台设置的短信签名'],
['type' => 'radio', 'name' => 'status', 'title' => '立即启用', 'extra' => ['1' => '是', '0' => '否'], 'value' => 1],
];
/**
* @var string 原数据库表前缀
*/
public $database_prefix = 'lw_';
/**
* 安装方法
* @return bool
*/
public function install(){
return true;
}
/**
* 卸载方法必
* @return bool
*/
public function uninstall(){
return true;
}
}
~~~
定义好之后,就可以进入后台->系统->扩展中心->插件管理,进行安装了。
- 序言
- 基础
- 开发规范
- 目录结构
- 下载安装
- 快速开发
- 创建一个表格
- 设置页面标题
- 设置页面提示
- 创建右侧按钮
- 创建顶部按钮
- 隐藏和替换按钮
- 隐藏第一列多选框
- 一次添加多行列表
- 添加一列
- 字段类型
- status
- text
- text.edit
- picture
- callback
- img_url
- pictures
- link
- files
- switch(2.0+)
- 设置表格主键
- 创建一个顶部搜索
- 调用js
- 创建快捷搜索
- 添加数量索引
- 添加表头排序(2.0.0)
- 添加一个右侧弹窗按钮
- 创建一个表单
- 表单字段说明
- 文本框
- 密码框
- 单选框
- 复选框
- 单图上传
- 多图上传
- 下拉框
- 多行文本
- 隐藏域
- 单文件上传
- 多文件上传
- 富文本编辑器
- 静态文本
- 排序
- 数字输入框
- 选择图标
- 关联联动
- 多级联动
- selectAjax(2.0+)
- 使用自定义JS文件
- 使用自定义CSS文件
- 公用函数
- 框架common
- is_signin
- data_auth_sign
- parse_attr
- parse_sql
- get_client_ip
- get_file_url
- get_files_url
- get_thumb
- hook
- p
- get_location
- format_linkage
- format_bytes
- action_log
- parse_action
- execute_action
- role_auth
- module_config
- addons_menage
- addons_config
- get_addons_class
- addons_action_exists
- addons_model_exists
- addons_validate_exists
- get_addons_model
- get_model_name
- get_model_title
- get_model_type
- get_model_table
- is_default_field
- table_exist
- implode_attr
- parse_array
- parse_name
- parse_config
- addons_parse_config
- addons_action
- get_adminname
- get_nickname
- set_config_value
- get_file_name
- format_time
- get_order_sn
- get_msectime
- timeToHIS
- getMobileType
- curl_post
- friend_date
- str2sub
- createLinkagesToken
- get_level_data
- get_level_pid
- get_level_key_data
- clear_js
- get_sex
- get_age
- user_is_signin
- user_role_auth
- filter
- filter_data
- time_tran
- search_time
- time2string
- check_password
- check_mobile
- push
- common模块
- 模块开发
- 创建模块信息
- 安装模块
- 模块配置
- 控制器
- 创建菜单
- 第一个控制器
- 方法参考
- 导出模块
- 插件开发
- 插件结构
- 插件信息
- 管理界面的字段信息
- 新增或编辑字段
- 插件钩子
- 数据库表前缀
- 插件配置
- 插件开发
- 控制器
- 模型
- 验证器
- 方法参考
- 自定义表
- 接口开发
- 新增接口
- 请求参数/返回参数
- 业务流程
- 应用管理
- MOCK接口
- 其他说明
- Redis使用说明
- 图片上传说明
- CMS模块说明
- 函数参考
- 商城模块说明
- 购物流程
- 直接购买提交购物订单
- 购物车流程
- 商品添加到购物车
- 购物车中商品数量变化
- 购物车提交订单
- 单客服使用说明
- 服务部署
- 客户端调用
- 后台客服端使用
- 更新说明(2.0+)