ulthon_admin
欢迎 目录和文件规范 系统架构 命名规范 php-cs-fixer public/static目录规范 app/common目录规范 数据库规范 CURD 命令行 表结构 数据库迁移代码 最佳实践 数据库自动缓存 后台菜单导入导出 权限的用法 table数据表格 cols operat _if titleField field selectList valueParser trueHide fieldFormat templet defaultValue search相关 time defaultSearchValue defaultToolbar init formFullScreen toobar modifyReload 控制器 CURD方法 导出 控制器通用验证 dataBrage向js传递参数 组件控件 select 下拉菜单option拼接 lay-submit paste-text粘贴 multiple-columns editor data-upload上传 tag-input标签输入 property-input动态字段输入 data-date时间控件参数 table-data列表选择器 city-picker城市选择器 copy-text 全局监听组件 data-request data-open 内置定时器 并发模式 重置密码 系统配置 PHP助手函数 sysconfig JS助手函数 checkMobile empty open 弹框 叠加loading getDataBrage getQueryVariable 扩展机制 事件扩展 实现事件 执行事件 事件列表 AdminLayoutRequireAfter LoadMigrationFiles AdminLoginIndex AdminLoginForget AdminLoginType AdminMenuTab AdminLayoutRequireBefore 自动更新 性能优化 精简代码 关闭数据库日志驱动 皮肤 正常 科幻 其他 切换模块时直接切换内容 关闭上传文件注入检测 代码编译原理 接入workerman和命令参数 升级TP6.1 Request的默认过滤 异步引入全局script 线上安装脚本 兼容PHP8.1

升级TP6.1

奥宏后台已经将上游依赖更新至最新。本文章对于使用老的版本后台或其他任何使用老版本tp6的都有指导意义。

推荐升级到tp6.1。

老版本有一些漏洞,而且使用了有安全漏洞的依赖。

目前TP6系列早已不再添加任何新特性,所以6.0和6.1都无所谓。但是新的bug修复和版本更新,应该会有小版本更新。

删除旧的依赖

如果是老版本的奥后后台,需要执行这个步骤。

  1. composer remove overtrue/flysystem-qiniu
  2. composer remove xxtime/flysystem-aliyun-oss
  3. composer remove chunpat/flysystem-tencent-cos

修改composer.json

  1. "topthink/framework": "^6.0",
  2. "topthink/think-orm": "^2.0",

注意require中版本依赖的写法:^6.0。其他写法可能无法升级到tp6.1,而是升级到最新的tp6.0。

升级依赖

  1. composer update

查看版本

  1. composer info

引入新flysystem扩展

  1. composer require topthink/think-filesystem

引入新的第三方

如果使用了老版本的奥宏后台,则需要执行。

引入依赖

有两种方法,直接修改 composer.json:

  1. "overtrue/flysystem-qiniu": "^2.0",
  2. "overtrue/flysystem-cos": "^4.0",
  3. "iidestiny/flysystem-oss": "^3.0"

或者单独引入:

  1. composer require overtrue/flysystem-qiniu:^2.0
  2. composer require overtrue/flysystem-cos:^4.0
  3. composer require iidestiny/flysystem-oss:^3.0

修改扩展文件呢

参考以下代码覆盖文件:

  • extend/think/filesystem/driver/Alioss.php
  • extend/think/filesystem/driver/Qiniu.php
  • extend/think/filesystem/driver/Txcos.php
<?php

namespace think\filesystem\driver;


use Iidestiny\Flysystem\Oss\OssAdapter;
use League\Flysystem\FilesystemAdapter;
use think\filesystem\Driver;

class Alioss  extends Driver
{
    protected function createAdapter(): FilesystemAdapter
    {

        return new OssAdapter(
            sysconfig('upload', 'alioss_access_key_id'),
            sysconfig('upload', 'alioss_access_key_secret'),
            sysconfig('upload', 'alioss_endpoint'),
            sysconfig('upload', 'alioss_bucket')
        );
    }

    public function url(string $path): string
    {
        return $this->concatPathToUrl(sysconfig('upload', 'alioss_domain'), $path);
    }
}
<?php

namespace think\filesystem\driver;

use League\Flysystem\FilesystemAdapter;
use think\filesystem\Driver;
use Overtrue\Flysystem\Qiniu\QiniuAdapter;

class Qiniu  extends Driver
{
    protected function createAdapter(): FilesystemAdapter
    {
        return new QiniuAdapter(
            sysconfig('upload', 'qnoss_access_key'),
            sysconfig('upload', 'qnoss_secret_key'),
            sysconfig('upload', 'qnoss_bucket'),
            sysconfig('upload', 'qnoss_domain')
        );
    }

    public function url(string $path): string
    {
        return $this->concatPathToUrl(sysconfig('upload', 'qnoss_domain'), $path);
    }
}
<?php

namespace think\filesystem\driver;;

use League\Flysystem\FilesystemAdapter;
use think\filesystem\Driver;
use Overtrue\Flysystem\Cos\CosAdapter;

class Txcos extends Driver
{
    protected function createAdapter(): FilesystemAdapter
    {
        $appid = sysconfig('upload', 'txcos_appid');
        $secretId = sysconfig('upload', 'txcos_secret_id');
        $secretKey = sysconfig('upload', 'txcos_secret_key');
        $region = sysconfig('upload', 'txcos_region'); //set a default bucket region 设置一个默认的存储桶地域 
        $bucket = sysconfig('upload', 'txcos_bucket'); //存储桶名称 格式:BucketName-APPID

        $config = [
            // 必填,app_id、secret_id、secret_key 
            // 可在个人秘钥管理页查看:https://console.cloud.tencent.com/capi
            'app_id' => $appid,
            'secret_id' => $secretId,
            'secret_key' => $secretKey,
            'region' => $region,
            'bucket' => $bucket,

            // 可选,如果 bucket 为私有访问请打开此项
            'signed_url' => false,

            // 可选,是否使用 https,默认 false
            'use_https' => true,
        ];

        $adapter = new CosAdapter($config);


        return $adapter;
    }

    public function url(string $path): string
    {
        return $this->concatPathToUrl(sysconfig('upload', 'txcos_domain'), $path);
    }
}

升级完成

到现在已经升级完成了。

但是还要注意,如果通过ftp上传到站点,要先删除服务器上的vendor,全新上传,否则服务器还是会出问题。

另外要注意,配置文件必须设置visibility

  1. 'qnoss' => [
  2. 'type' => 'Qiniu',
  3. 'visibility' => 'public',
  4. ],
  5. 'alioss' => [
  6. 'type' => 'Alioss',
  7. 'visibility' => 'public',
  8. ],
  9. 'txcos' => [
  10. 'type' => 'Txcos',
  11. 'visibility' => 'public',
  12. ],

原文标题:升级TP6.1

原文文档:ulthon_admin

原文地址:https://doc.ulthon.com/read/augushong/ulthon_admin/63ad0eed40006/zh-cn/2.x.html

原文平台:奥宏文档

2.x