每個插件都有一個入口文件,命名方式為`插件名稱.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+)