B2C商城
使用手册
设置模块
模板设置
数据库管理
促销管理
插件管理
积分管理
小程序直播
第三方账号注册流程
网站模块
商品模块
订单管理模块
供应商模块
数据模块
微商城模块
小程序&APP模块
常见问题
其他
API接口
用户中心接口
商品相关接口
开发手册
开发教程
基础教程
视频教程
TP视频教程
tpshop的功能插件
插件千变万化, 一般插件安装卸载都会写份文档, 教开发者复制哪些文件到哪些目录, 然后执行哪些sql 新建哪些表。
卸载插件的时候 也很麻烦需要一个个文件去寻找删除。
但是tpshop 中的万能插件安装卸载 却很方便, 从此不需要像普通那么麻烦, 能做到一键安装 一键卸载, 前提条件是某些文件必须没有经过二次开发, 否则怕覆盖掉被开发的文件,
所以在安装卸载插件的时候, 请注意将会覆盖哪些文件。 话不多说, 先看下tpshop 插件管理类的 如下安装代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | //如果是功能插件 if ( $condition [ 'type' ] == 'function' ) { include_once "plugins/function/{$condition['code']}/plugins.class.php" ; $plugin = new \plugins(); if ( $update [ 'status' ] == 1) // 安装 { $execute_sql = $plugin ->install_sql(); // 执行安装sql 语句 $plugin ->install(); // 执行 插件安装代码 } else // 卸载 { $execute_sql = $plugin ->uninstall_sql(); // 执行卸载sql 语句 $plugin ->uninstall(); // 执行插件卸载代码 } $Model = new \Think\Model(); $Model ->execute( $execute_sql ); // 执行插件所需的sql 语句 } |
然后看看插件目录。 其中 www 是所需要用到覆盖的文件,
config.php 插件配置
install.sql 插件安装时用到的sql
logo.jpg 插件图标
plugins.class.php 插件安装卸载累 格式固定的, 每个功能插件都必须有这个类, 名字格式都必须一致
uninstall.sql 卸载所用到的文件
下面不多说自己看代码体验一下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
use Think\Model\RelationModel; /** * 插件需要执行的方法 逻辑定义 */ class plugins extends RelationModel { public $tableName = 'plugin' ; // 插件表 public $app_path ; /** * 析构流函数 */ public function __construct() { parent::__construct(); $this ->app_path = dirname( $_SERVER [ 'SCRIPT_FILENAME' ]). '/' ; // 当前项目路径 } /** * 安装 */ function install() { // 执行安装代码 比如复制文件 这里一般是将开发的文件 一个个 copy 到对应的目录中去 // 递归复制文件夹 recurse_copy( $this ->app_path. 'plugins/function/helloworld/www/' , $this ->app_path); } /** * 卸载插件 */ function uninstall() { // 执行卸载代码 比如删除文件 将安装时 复制好的 插件文件 一个个删除掉 delFile( $this ->app_path. 'Application/Admin/Controller/HelloWorldController.class.php' ); delFile( $this ->app_path. 'Application/Admin//View/HelloWorld' ); // 删除HelloWorld目录下所有文件 rmdir ( $this ->app_path. 'Application/Admin//View/HelloWorld' ); // 删除目录 HelloWorld } /** * 安装 sql 语句 * 这里的sql 可以的文件导入 也可以直接写死 插件要用到的新表 数据等 */ function install_sql() { $sql = file_get_contents ( $this ->app_path. 'plugins/function/helloworld/install.sql' ); return $sql ; } /** * 卸载 sql 语句 * 把插件相关的数据删除掉. */ function uninstall_sql() { $sql = file_get_contents ( $this ->app_path. 'plugins/function/helloworld/uninstall.sql' ); return $sql ; } } 文章未显示完整,要查看完整内容,请购买正版 |