From a86a2142bf09207fd5c200e6667fed28c60ed172 Mon Sep 17 00:00:00 2001 From: taoser Date: Thu, 16 Mar 2023 22:28:19 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A7=BB=E9=99=A4filesystem?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/admin/controller/Addons.php | 28 ++--- app/admin/validate/addonfactory/.gitignore | 2 + app/admin/view/forum/tags.html | 7 +- app/admin/view/forum/tagsform.html | 7 +- app/common/lib/Uploads.php | 76 ++++++++++++- app/install/data/taoler.sql | 7 +- composer.json | 3 +- composer.lock | 113 +------------------- config/filesystem.php | 4 +- config/taoler.php | 2 +- vendor/composer/autoload_psr4.php | 3 +- vendor/composer/autoload_static.php | 12 +-- vendor/composer/installed.json | 117 --------------------- vendor/composer/installed.php | 22 +--- vendor/services.php | 2 +- 15 files changed, 118 insertions(+), 287 deletions(-) create mode 100644 app/admin/validate/addonfactory/.gitignore diff --git a/app/admin/controller/Addons.php b/app/admin/controller/Addons.php index 3392edd..e18f7d2 100644 --- a/app/admin/controller/Addons.php +++ b/app/admin/controller/Addons.php @@ -233,7 +233,6 @@ class Addons extends AdminController if(!isset($header[0]) && (strpos($header[0], '200') || strpos($header[0], '304'))){ return json(['code'=>-1,'msg'=>'获取远程文件失败']); } - //把远程文件放入本地 //拼接路径 @@ -269,24 +268,26 @@ class Addons extends AdminController } if (!empty($checkString)) return json(['code' => -1, 'msg' => $checkString]); - try { - FileHelper::copyDir(root_path() . 'runtime' . DS . 'addons' . DS . $data['name'] . DS, root_path()); - } catch (\Exception $e) { - return json(['code'=> -1, 'msg'=> $e->getMessage()]); - } - - $class = get_addons_instance($data['name']); try { + // 拷贝文件 + FileHelper::copyDir(root_path() . 'runtime' . DS . 'addons' . DS . $data['name'] . DS, root_path()); + // $type判断是安装还是升级 if($type) { // 执行数据库 $sqlInstallFile = root_path(). 'addons' . DS . $data['name'] . DS . 'install.sql'; if(file_exists($sqlInstallFile)) { SqlFile::dbExecute($sqlInstallFile); } - } + } //安装菜单 - $menu = get_addons_menu($data['name']); + //$menu = get_addons_menu($data['name']); + $menuFile = app()->getRootPath() . 'addons' . DS . $data['name'] . DS . 'menu.php'; + if(file_exists($menuFile)){ + $menu = include $menuFile; + } else { + $menu = []; + } if(!empty($menu)){ if(isset($menu['is_nav']) && $menu['is_nav'] == 1){ $pid = 0; @@ -296,6 +297,7 @@ class Addons extends AdminController $menu_arr[] = $menu['menu']; $this->addAddonMenu($menu_arr, (int)$pid,1); } + $class = get_addons_instance($data['name']); //执行插件安装 $class->install(); set_addons_info($data['name'],['status' => 1,'install' => 1]); @@ -372,7 +374,7 @@ class Addons extends AdminController // 卸载插件 $class = get_addons_instance($data['name']); $class->uninstall(); - $this->uninstall($data['name']); + //$this->uninstall($data['name']); // 卸载菜单 $menu = get_addons_menu($data['name']); @@ -382,7 +384,7 @@ class Addons extends AdminController } try { - // 升级安装,第二个参数为false + // 升级安装,第二个type参数false为升级,true安装 $res = $this->install($data,false); // 升级sql $sqlUpdateFile = root_path().'addons/'.$data['name'].'/update.sql'; @@ -393,6 +395,8 @@ class Addons extends AdminController if(!empty($config)) { set_addons_config($data['name'], $config); } + // 写入版本号 + set_addons_info($data['name'],['version' =>$data['version']]); } catch (\Exception $e) { return json(['code' => -1, 'msg' => $e->getMessage()]); } diff --git a/app/admin/validate/addonfactory/.gitignore b/app/admin/validate/addonfactory/.gitignore new file mode 100644 index 0000000..c96a04f --- /dev/null +++ b/app/admin/validate/addonfactory/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore \ No newline at end of file diff --git a/app/admin/view/forum/tags.html b/app/admin/view/forum/tags.html index 1d61c29..7da117a 100644 --- a/app/admin/view/forum/tags.html +++ b/app/admin/view/forum/tags.html @@ -144,6 +144,7 @@ overflow: visible; var othis = layero.find('iframe').contents().find("#layuiadmin-app-form-tags") ,pid = othis.find('input[name="pid"]').val() ,sort = othis.find('input[name="sort"]').val() + ,appname = othis.find('select[name="appname"]').val() ,catename = othis.find('input[name="catename"]').val() ,ename = othis.find('input[name="ename"]').val() ,detpl = othis.find('select[name="detpl"]').val() @@ -155,7 +156,7 @@ overflow: visible; $.ajax({ type:"post", url:forumTagsForm, - data:{"id":data.id,"pid":pid,"sort":sort,"catename":catename,"ename":ename,"detpl":detpl,"icon":icon,"desc":desc}, + data:{"id":data.id,"pid":pid,"sort":sort,"appname":appname,"catename":catename,"ename":ename,"detpl":detpl,"icon":icon,"desc":desc}, daType:"json", success:function (data){ if(data.code == 0){layer.msg(data.msg,{icon:6,time:2000},function(){ @@ -181,6 +182,7 @@ overflow: visible; var othis = layero.find('iframe').contents().find("#layuiadmin-app-form-tags").click(); othis.find('input[name="pid"]').val(data.pid) ,othis.find('input[name="sort"]').val(data.sort) + ,othis.find('select[name="appname"]').val(data.appname) ,othis.find('input[name="catename"]').val(data.catename) ,othis.find('input[name="ename"]').val(data.ename) ,othis.find('input[name="icon"]').val(data.icon) @@ -202,6 +204,7 @@ overflow: visible; var othis = layero.find('iframe').contents().find("#layuiadmin-app-form-tags") ,pid = othis.find('input[name="pid"]').val() ,sort = othis.find('input[name="sort"]').val() + ,appname = othis.find('select[name="appname"]').val() ,catename = othis.find('input[name="catename"]').val() ,ename = othis.find('input[name="ename"]').val() ,detpl = othis.find('select[name="detpl"]').val() @@ -213,7 +216,7 @@ overflow: visible; $.ajax({ type:"post", url:"{:url('Forum/tagsform')}", - data:{pid:pid,"sort":sort,"catename":catename,"ename":ename,"detpl":detpl,"icon":icon,"desc":desc}, + data:{pid:pid,"sort":sort,"appname":appname,"catename":catename,"ename":ename,"detpl":detpl,"icon":icon,"desc":desc}, daType:"json", success:function (data){ if (data.code == 0) { diff --git a/app/admin/view/forum/tagsform.html b/app/admin/view/forum/tagsform.html index c4fa501..bf68c54 100644 --- a/app/admin/view/forum/tagsform.html +++ b/app/admin/view/forum/tagsform.html @@ -60,10 +60,10 @@ }).use(['index', 'form','admin', 'iconPicker', 'xmSelect',], function(){ var $ = layui.$ ,form = layui.form ; - var admin = layui.admin; + var admin = layui.admin; var iconPicker = layui.iconPicker; - var xmSelect = layui.xmSelect; - var initPid = "{$cate.pid}"; + var xmSelect = layui.xmSelect; + var initPid = "{$cate.pid}"; //初始化图标选择 iconPicker.render({ @@ -77,6 +77,7 @@ } }); + // 根据应用名动态选择应用下模板 form.on('select(appname)', function(data){ var appName = data.value; $("#tpl").children('option').remove(); diff --git a/app/common/lib/Uploads.php b/app/common/lib/Uploads.php index 7da85ce..931f371 100644 --- a/app/common/lib/Uploads.php +++ b/app/common/lib/Uploads.php @@ -1,6 +1,7 @@ file($fileName); + } + + //halt($file->getOriginalName()); + //$type = $file->getMime(); + $fileExt = $this->getFileInfo($fileType,'ext'); + $fileMime = $this->getFileInfo($fileType,'mime'); + + try { + validate([$fileName=>['fileSize'=>$fileSize * 1024,'fileExt'=>$fileExt,'fileMime'=>$fileMime]]) + ->check(['file'=>$file]); + + } catch (ValidateException $e) { + return json(['status'=>-1,'msg'=>$e->getMessage()]); + } + + // 解析存储位置 SYS_开头为系统位置 + $isSys = stripos($dirName, 'SYS_'); + if($isSys !== false) { + $disk = 'sys'; + $dirName = substr($dirName,4); + $uploadDir = Config::get('filesystem.disks.sys.url'); + $path = DIRECTORY_SEPARATOR . $disk . DIRECTORY_SEPARATOR . $dirName . DIRECTORY_SEPARATOR . date('Ymd'); + } else { + $disk = 'public'; + $dirName = session('user_id'). DIRECTORY_SEPARATOR . $dirName; + $uploadDir = Config::get('filesystem.disks.public.url'); + $path = DIRECTORY_SEPARATOR . 'storage' . DIRECTORY_SEPARATOR . $dirName . DIRECTORY_SEPARATOR . date('Ymd'); + } + + $realPath = app()->getRootPath() . 'public' . $path; + + $rules = ['md5','date','sha1','uniqid']; + + try{ + // 解析是否自定义文件名 + if(in_array($rule, $rules)) { + // rule命名 + $info = $file->move($realPath, $file->hashName($rule)); + } elseif(!empty($rule)) { + // 自定义文件名 + if(stripos($rule, '_self')) { + $info = $file->move($realPath, $file->getOriginalName()); + } + $info = $file->move($realPath, $rule); + } else { + // 默认 + $info = $file->move($realPath, $file->hashName()); + } + } catch (\Exception $e) { + return json(['code' => -1, 'msg' => $e->getMessage()]); + } +// halt($info->getBasename()); + $name_path = str_replace('\\',"/", $path . '/' . $info->getBasename()); + + return json(['status'=>0,'msg'=>'上传成功','url'=> $name_path, 'location'=>$name_path]); + } + } \ No newline at end of file diff --git a/app/install/data/taoler.sql b/app/install/data/taoler.sql index fe2e805..410f511 100644 --- a/app/install/data/taoler.sql +++ b/app/install/data/taoler.sql @@ -282,6 +282,7 @@ CREATE TABLE `tao_cate` ( `icon` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '图标', `sort` int NOT NULL DEFAULT 0 COMMENT '排序', `status` enum('0','1') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '1' COMMENT '状态1启用0禁用', + `appname` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'index' COMMENT '所属应用', `type` tinyint(1) NOT NULL DEFAULT 0 COMMENT '0帖子1文章', `desc` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, `is_hot` tinyint UNSIGNED NOT NULL DEFAULT 0 COMMENT '是否是热点', @@ -295,9 +296,9 @@ CREATE TABLE `tao_cate` ( -- ---------------------------- -- Records of tao_cate -- ---------------------------- -INSERT INTO `tao_cate` VALUES (1, 0, '提问', 'ask', 'ask', 'layui-icon-help', 1, '1', 0, 'TaoLer社区提问专栏1', 0, 0, 0, 0); -INSERT INTO `tao_cate` VALUES (2, 0, '分享', 'share', 'posts', 'layui-icon-share', 2, '1', 0, '', 0, 0, 0, 0); -INSERT INTO `tao_cate` VALUES (3, 0, '讨论', 'talk', 'posts', 'layui-icon-dialogue', 3, '1', 0, '', 1, 0, 0, 0); +INSERT INTO `tao_cate` VALUES (1, 0, '提问', 'ask', 'ask', 'layui-icon-help', 50, '1', 'index', 0, 'TaoLer社区提问专栏1', 0, 0, 0, 0); +INSERT INTO `tao_cate` VALUES (2, 0, '分享', 'share', 'posts', 'layui-icon-share', 2, '1', 'index', 1, '内容分析', 0, 0, 0, 0); +INSERT INTO `tao_cate` VALUES (3, 0, '讨论', 'talk', 'news', 'layui-icon-dialogue', 3, '1', 'index', 1, '讨论问题', 1, 0, 0, 0); -- ---------------------------- -- Table structure for tao_collection diff --git a/composer.json b/composer.json index 166efb9..fbd5924 100644 --- a/composer.json +++ b/composer.json @@ -39,8 +39,7 @@ "workerman/phpsocket.io": "^1.1", "jaeger/querylist": "^4.2", "symfony/var-exporter": "^5.4", - "yzh52521/easyhttp": "^1.0", - "topthink/think-filesystem": "1.0.1" + "yzh52521/easyhttp": "^1.0" }, "require-dev": { "symfony/var-dumper": "^4.2", diff --git a/composer.lock b/composer.lock index 46d0b7b..6d6a99f 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "df0ddbd3ebf5e88c7b67ecb8c20ded00", + "content-hash": "20e9c0c21d94d1cbf1c29c69868ebe38", "packages": [ { "name": "bacon/bacon-qr-code", @@ -1102,63 +1102,6 @@ ], "time": "2022-10-04T09:16:37+00:00" }, - { - "name": "league/flysystem-cached-adapter", - "version": "1.1.0", - "source": { - "type": "git", - "url": "https://github.com/thephpleague/flysystem-cached-adapter.git", - "reference": "d1925efb2207ac4be3ad0c40b8277175f99ffaff" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem-cached-adapter/zipball/d1925efb2207ac4be3ad0c40b8277175f99ffaff", - "reference": "d1925efb2207ac4be3ad0c40b8277175f99ffaff", - "shasum": "", - "mirrors": [ - { - "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", - "preferred": true - } - ] - }, - "require": { - "league/flysystem": "~1.0", - "psr/cache": "^1.0.0" - }, - "require-dev": { - "mockery/mockery": "~0.9", - "phpspec/phpspec": "^3.4", - "phpunit/phpunit": "^5.7", - "predis/predis": "~1.0", - "tedivm/stash": "~0.12" - }, - "suggest": { - "ext-phpredis": "Pure C implemented extension for PHP" - }, - "type": "library", - "autoload": { - "psr-4": { - "League\\Flysystem\\Cached\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "frankdejonge", - "email": "info@frenky.net" - } - ], - "description": "An adapter decorator to enable meta-data caching.", - "support": { - "issues": "https://github.com/thephpleague/flysystem-cached-adapter/issues", - "source": "https://github.com/thephpleague/flysystem-cached-adapter/tree/master" - }, - "time": "2020-07-25T15:56:04+00:00" - }, { "name": "league/mime-type-detection", "version": "1.11.0", @@ -2864,60 +2807,6 @@ }, "time": "2022-10-26T07:59:42+00:00" }, - { - "name": "topthink/think-filesystem", - "version": "v1.0.1", - "source": { - "type": "git", - "url": "https://github.com/top-think/think-filesystem.git", - "reference": "cfc510520db9bcd22d8d80f51d7e415a2f470af6" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/top-think/think-filesystem/zipball/cfc510520db9bcd22d8d80f51d7e415a2f470af6", - "reference": "cfc510520db9bcd22d8d80f51d7e415a2f470af6", - "shasum": "", - "mirrors": [ - { - "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", - "preferred": true - } - ] - }, - "require": { - "league/flysystem": "^1.1.4", - "league/flysystem-cached-adapter": "^1.0", - "php": ">=7.2.5", - "topthink/framework": "^6.1" - }, - "require-dev": { - "mikey179/vfsstream": "^1.6", - "mockery/mockery": "^1.2", - "phpunit/phpunit": "^8.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "think\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "Apache-2.0" - ], - "authors": [ - { - "name": "yunwuxin", - "email": "448901948@qq.com" - } - ], - "description": "The ThinkPHP6.1 Filesystem Package", - "support": { - "issues": "https://github.com/top-think/think-filesystem/issues", - "source": "https://github.com/top-think/think-filesystem/tree/v1.0.1" - }, - "time": "2022-10-26T03:50:24+00:00" - }, { "name": "topthink/think-helper", "version": "v3.1.6", diff --git a/config/filesystem.php b/config/filesystem.php index cae23bc..43a4915 100644 --- a/config/filesystem.php +++ b/config/filesystem.php @@ -22,7 +22,7 @@ return [ // 磁盘类型 'type' => 'local', // 磁盘路径 - 'root' => app()->getRootPath() . 'public/storage', + 'root' => app()->getRootPath() . 'public' . DIRECTORY_SEPARATOR . 'storage', // 磁盘路径对应的外部URL路径 'url' => '/storage', // 可见性 @@ -30,7 +30,7 @@ return [ ], 'sys' => [ 'type' => 'local', - 'root' => app()->getRootPath() . 'public/sys', + 'root' => app()->getRootPath() . 'public' . DIRECTORY_SEPARATOR . 'sys', 'url' => '/sys', ], // 更多的磁盘配置信息 diff --git a/config/taoler.php b/config/taoler.php index 5f5569d..8eaf3b2 100644 --- a/config/taoler.php +++ b/config/taoler.php @@ -16,7 +16,7 @@ return [ // 应用名,此项不可更改 'appname' => 'TaoLer', // 版本配置 - 'version' => '2.0.10', + 'version' => '2.1.0', // 加盐 'salt' => 'taoler', // 数据库备份目录 diff --git a/vendor/composer/autoload_psr4.php b/vendor/composer/autoload_psr4.php index 5ecfac2..5a6252d 100644 --- a/vendor/composer/autoload_psr4.php +++ b/vendor/composer/autoload_psr4.php @@ -14,7 +14,7 @@ return array( 'think\\composer\\' => array($vendorDir . '/topthink/think-installer/src'), 'think\\captcha\\' => array($vendorDir . '/topthink/think-captcha/src'), 'think\\app\\' => array($vendorDir . '/topthink/think-multi-app/src'), - 'think\\' => array($vendorDir . '/topthink/framework/src/think', $vendorDir . '/topthink/think-filesystem/src', $vendorDir . '/topthink/think-helper/src', $vendorDir . '/topthink/think-orm/src', $vendorDir . '/topthink/think-template/src'), + 'think\\' => array($vendorDir . '/topthink/framework/src/think', $vendorDir . '/topthink/think-helper/src', $vendorDir . '/topthink/think-orm/src', $vendorDir . '/topthink/think-template/src'), 'taoser\\think\\' => array($vendorDir . '/taoser/think-auth/src'), 'taoser\\' => array($vendorDir . '/taoser/think-addons/src', $vendorDir . '/taoser/think-setarr/src'), 'phpspirit\\databackup\\' => array($vendorDir . '/lotofbadcode/phpspirit_databackup/src'), @@ -42,7 +42,6 @@ return array( 'PHPSocketIO\\' => array($vendorDir . '/workerman/phpsocket.io/src'), 'PHPMailer\\PHPMailer\\' => array($vendorDir . '/phpmailer/phpmailer/src'), 'League\\MimeTypeDetection\\' => array($vendorDir . '/league/mime-type-detection/src'), - 'League\\Flysystem\\Cached\\' => array($vendorDir . '/league/flysystem-cached-adapter/src'), 'League\\Flysystem\\' => array($vendorDir . '/league/flysystem/src'), 'Laravel\\SerializableClosure\\' => array($vendorDir . '/laravel/serializable-closure/src'), 'Jaeger\\' => array($vendorDir . '/jaeger/g-http/src'), diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php index a8f44ae..cd1ad7c 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -102,7 +102,6 @@ class ComposerStaticInit1b32198725235c8d6500c87262ef30c2 'L' => array ( 'League\\MimeTypeDetection\\' => 25, - 'League\\Flysystem\\Cached\\' => 24, 'League\\Flysystem\\' => 17, 'Laravel\\SerializableClosure\\' => 28, ), @@ -182,10 +181,9 @@ class ComposerStaticInit1b32198725235c8d6500c87262ef30c2 'think\\' => array ( 0 => __DIR__ . '/..' . '/topthink/framework/src/think', - 1 => __DIR__ . '/..' . '/topthink/think-filesystem/src', - 2 => __DIR__ . '/..' . '/topthink/think-helper/src', - 3 => __DIR__ . '/..' . '/topthink/think-orm/src', - 4 => __DIR__ . '/..' . '/topthink/think-template/src', + 1 => __DIR__ . '/..' . '/topthink/think-helper/src', + 2 => __DIR__ . '/..' . '/topthink/think-orm/src', + 3 => __DIR__ . '/..' . '/topthink/think-template/src', ), 'taoser\\think\\' => array ( @@ -296,10 +294,6 @@ class ComposerStaticInit1b32198725235c8d6500c87262ef30c2 array ( 0 => __DIR__ . '/..' . '/league/mime-type-detection/src', ), - 'League\\Flysystem\\Cached\\' => - array ( - 0 => __DIR__ . '/..' . '/league/flysystem-cached-adapter/src', - ), 'League\\Flysystem\\' => array ( 0 => __DIR__ . '/..' . '/league/flysystem/src', diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index 1432cc3..5d6af7a 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -1063,66 +1063,6 @@ ], "install-path": "../league/flysystem" }, - { - "name": "league/flysystem-cached-adapter", - "version": "1.1.0", - "version_normalized": "1.1.0.0", - "source": { - "type": "git", - "url": "https://github.com/thephpleague/flysystem-cached-adapter.git", - "reference": "d1925efb2207ac4be3ad0c40b8277175f99ffaff" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem-cached-adapter/zipball/d1925efb2207ac4be3ad0c40b8277175f99ffaff", - "reference": "d1925efb2207ac4be3ad0c40b8277175f99ffaff", - "shasum": "", - "mirrors": [ - { - "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", - "preferred": true - } - ] - }, - "require": { - "league/flysystem": "~1.0", - "psr/cache": "^1.0.0" - }, - "require-dev": { - "mockery/mockery": "~0.9", - "phpspec/phpspec": "^3.4", - "phpunit/phpunit": "^5.7", - "predis/predis": "~1.0", - "tedivm/stash": "~0.12" - }, - "suggest": { - "ext-phpredis": "Pure C implemented extension for PHP" - }, - "time": "2020-07-25T15:56:04+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "League\\Flysystem\\Cached\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "frankdejonge", - "email": "info@frenky.net" - } - ], - "description": "An adapter decorator to enable meta-data caching.", - "support": { - "issues": "https://github.com/thephpleague/flysystem-cached-adapter/issues", - "source": "https://github.com/thephpleague/flysystem-cached-adapter/tree/master" - }, - "install-path": "../league/flysystem-cached-adapter" - }, { "name": "league/mime-type-detection", "version": "1.11.0", @@ -2818,63 +2758,6 @@ }, "install-path": "../topthink/think-captcha" }, - { - "name": "topthink/think-filesystem", - "version": "v1.0.1", - "version_normalized": "1.0.1.0", - "source": { - "type": "git", - "url": "https://github.com/top-think/think-filesystem.git", - "reference": "cfc510520db9bcd22d8d80f51d7e415a2f470af6" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/top-think/think-filesystem/zipball/cfc510520db9bcd22d8d80f51d7e415a2f470af6", - "reference": "cfc510520db9bcd22d8d80f51d7e415a2f470af6", - "shasum": "", - "mirrors": [ - { - "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", - "preferred": true - } - ] - }, - "require": { - "league/flysystem": "^1.1.4", - "league/flysystem-cached-adapter": "^1.0", - "php": ">=7.2.5", - "topthink/framework": "^6.1" - }, - "require-dev": { - "mikey179/vfsstream": "^1.6", - "mockery/mockery": "^1.2", - "phpunit/phpunit": "^8.0" - }, - "time": "2022-10-26T03:50:24+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "think\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "Apache-2.0" - ], - "authors": [ - { - "name": "yunwuxin", - "email": "448901948@qq.com" - } - ], - "description": "The ThinkPHP6.1 Filesystem Package", - "support": { - "issues": "https://github.com/top-think/think-filesystem/issues", - "source": "https://github.com/top-think/think-filesystem/tree/v1.0.1" - }, - "install-path": "../topthink/think-filesystem" - }, { "name": "topthink/think-helper", "version": "v3.1.6", diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php index 2dc4ba0..be7714a 100644 --- a/vendor/composer/installed.php +++ b/vendor/composer/installed.php @@ -3,7 +3,7 @@ 'name' => 'taoser/taoler', 'pretty_version' => 'dev-master', 'version' => 'dev-master', - 'reference' => '24134372d0bdc16ddb7f8b3582608efc1319b59b', + 'reference' => '22c5b7c31c4425068784b5e30b6cae18549c4190', 'type' => 'project', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), @@ -145,15 +145,6 @@ 'aliases' => array(), 'dev_requirement' => false, ), - 'league/flysystem-cached-adapter' => array( - 'pretty_version' => '1.1.0', - 'version' => '1.1.0.0', - 'reference' => 'd1925efb2207ac4be3ad0c40b8277175f99ffaff', - 'type' => 'library', - 'install_path' => __DIR__ . '/../league/flysystem-cached-adapter', - 'aliases' => array(), - 'dev_requirement' => false, - ), 'league/mime-type-detection' => array( 'pretty_version' => '1.11.0', 'version' => '1.11.0.0', @@ -367,7 +358,7 @@ 'taoser/taoler' => array( 'pretty_version' => 'dev-master', 'version' => 'dev-master', - 'reference' => '24134372d0bdc16ddb7f8b3582608efc1319b59b', + 'reference' => '22c5b7c31c4425068784b5e30b6cae18549c4190', 'type' => 'project', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), @@ -427,15 +418,6 @@ 'aliases' => array(), 'dev_requirement' => false, ), - 'topthink/think-filesystem' => array( - 'pretty_version' => 'v1.0.1', - 'version' => '1.0.1.0', - 'reference' => 'cfc510520db9bcd22d8d80f51d7e415a2f470af6', - 'type' => 'library', - 'install_path' => __DIR__ . '/../topthink/think-filesystem', - 'aliases' => array(), - 'dev_requirement' => false, - ), 'topthink/think-helper' => array( 'pretty_version' => 'v3.1.6', 'version' => '3.1.6.0', diff --git a/vendor/services.php b/vendor/services.php index d78d207..75cb3e2 100644 --- a/vendor/services.php +++ b/vendor/services.php @@ -1,5 +1,5 @@ 'taoser\\addons\\Service',