9.3 KiB
Executable File
9.3 KiB
Executable File
1. (升级至composer版本)修改原来buider类的命名空间, 修改Common/Conf/config.php里的相关配置
检查根目录与www目录下的文件差异,升级至最新文件
从最新代码移植lara文件夹到根目录
升级Common/Common/function.php
2. (升级至v2.0.0版本)修改AppInitBehavior 队列相关类的命名空间,修改Common/Conf/config.php 跟队列有关的设置,从env读取
修改Common/Model/QueueModel类的队列命名空间,升级后注意计划任务相关的键值前缀,旧版队列的前缀会和新版队列的前缀会不一样,新版计划任务前缀会根据设置的值而定,旧版则不受设定前缀影响
修改app/resque文件
检查queue数据表,是否缺少schedule字段,添加schedule表
3. (升级至v2.0.0版本)如该项目之前有使用ElasticsearchController, 修改Home/Controller/ElasticsearchController的Elasticsearch类的命名空间,修改Model里跟Elasticsearch相关的命名空间
修改app/makeIndex.php文件
4. (升级至v2.0.1版本) 修改Admin/Controller/QueueController、Behaviors/AppInitBehavior、Common/Model/QueueModel、用到Job状态的DBCont的命名空间
删除Gy_Library/DBcont与Job状态有关的代码
5. (升级至v2.0.5版本)修改CateHelperTrait和ContentHelperTrait的命名空间,移除Gy_library里的文件
修改CusUpload的命名空间,移除Gy_library里的文件
修改GyController和GyListController,分别继承QsController和QsListController,删除同名方法
修改GyModel和GyListModel,分别继承QsModel和QsListModel,删除同名方法
删掉Common\function.php里的genSelectByTree、isAdminLogin、list_to_tree函数
删除Common\Lib 的Flash和FlashError
修改GyRbac的命名空间,更名为QsRbac
GyPage更名为QsPage,原GyPage继承QsPage,删除Common/Conf/config 里的 VAR_PAGE
6.(升级到v3.0.0以上版本)检查有无使用队列的计划任务功能,如使用了,可用升级脚本进行升级
项目根目录/www# php index.php Qscmf/UpgradeFix/v300FixSchedule/queue/[计划队列名] maintenance
如用到七牛云的音视频上传功能,注意qs_file_pic的字段有无缺失,对比qs_cmf的迁移文件里的qs_file_pic表的定义
修改app/resque文件 修改绑定模块,将Home改为绑定到Qscmf
7.(升级到v4.0.0以上版本)检查app/Behaviors/AppInitBehavior.class.php有无DOMAIN、SITE_URL、HTTP_PROTOCOL的常量定义,如有,将代码删除即可
8.(升级到v5.0.0以上版本)检查有无引用Org\Util\String类,如有,将命名空间改为Org\Util\StringHelper,并将类名String修改为StringHelper。
9.(升级到v6.0.0以上版本)检查有无在www/Public/views/Admin/common/common.js和www/Public/views/common.css中自定义客制化代码,如有,请
将代码迁移处理。上述两文件将移植核心库。并在app/Admin/View/default/common/dashboard_layout.html中将以上两文件的引用分别指向
__PUBLIC__/libs/admin/common.js和__PUBLIC__/libs/admin/common.css。
10.(升级到v7.0.0以上版本)7.0版本移除了位于Qscmf/Lib下的QsExcel代码,检查有无使用该类,如果使用了,请安装使用https://github.com/quansitech/qs-excel。
11.(升级到v8.0.0以上版本)8.0提供了许多扩展机制,部分原来继承在框架里的功能都移到了独立的composer扩展。
因此升级到该版本,必须注意业务系统有无使用了已经移除的组件功能,如果有,则需要查看组件的安装方法,安装后才会不影响原有的功能
移除的组件有以下内容
(1)formbuilder formitem的vedio_vod类型 (https://github.com/quansitech/qscmf-formitem-vod)
(2) formbuilder formitem的qiniu_video和qiniu_audio类型 (https://github.com/quansitech/qscmf-formitem-qiniu)
(3) listbuilder topbutton的 download类型 (https://github.com/quansitech/qscmf-topbutton-download)
(4) listbuilder topbutton的 export类型 (https://github.com/quansitech/qscmf-topbutton-export)
(5) formbuilder formitem的 audio_oss、audios_oss、file_oss、files_oss、picture_oss、pictures_oss、picture_oss_intercept、pictures_oss_intercept (https://github.com/quansitech/qscmf-formitem-aliyun-oss)
在项目的composer.json文件的scripts设置项修改为
"scripts": {
"post-root-package-install": [
"@php -r \"file_exists('.env') || copy('.env.example', '.env');\""
],
"post-autoload-dump": [
"./vendor/bin/qsinstall",
"./vendor/bin/qsautoload",
"@php artisan package:discover --ansi",
"@php artisan qscmf:discover --ansi",
"@php ./www/index.php /qscmf/createSymlink"
]
}
删除app/Behaviors文件架下的InitHookBehavior.class.php、LoadDBConfigBehavior.class.php
删除app/Common/Conf/tags.php 中 InitHook 和 LoadDBConfig的设置
检查根目录下的tp.php文件,有无LARA_DIR 和 ROOT_PATH的常量定义,没有则添加
defined('LARA_DIR') || define('LARA_DIR', __DIR__ . '/lara');
defined('ROOT_PATH') || define('ROOT_PATH', __DIR__);
检查composer.json文件,并添加以下内容
"require-dev": {
"phpunit/phpunit": "^8.0",
"laravel/dusk": "^5.0",
"mockery/mockery": "^1.2",
"fzaninotto/faker": "^1.4"
},
"autoload-dev": {
"psr-4": {
"Lara\\Tests\\":"lara\/tests"
}
},
如果是采用swoole-webhook的部署方式,拉取下最新的镜像
12.(升级到v9.0.0以上版本)
----------------------------------
defined('LARA_DIR') || define('LARA_DIR', __DIR__ . '/lara');
\Bootstrap\Context::providerRegister(true);
\Larafortp\ArtisanHack::init($app);
----------------------------------
1. 将上面的代码复制到根目录下的artisan | $kernel = $app->make(Illuminate\Contracts\Console\Kernel::class); | 前
2. 检查 app/Admin/View/default/common/head.html 中的 <div class="navbar-left"> 元素前面有没包裹 <div class="navbar-container"> ,没有则加上
在app/Admin/View/default/common/dashboard_layout.html 加入
<link href="__PUBLIC__/libs/perfect-scrollbar/perfect-scrollbar.css" rel="stylesheet" type="text/css" />
<script src="__PUBLIC__/libs/perfect-scrollbar/perfect-scrollbar.min.js" type="text/javascript"></script>
3. 删除tp.php 里内容,替换成以下的
--------------------------------
<?php
// 应用入口文件
ini_set('display_errors', '0');
if(!function_exists('show_bug')){
function show_bug($object){
echo "<pre style='color:red'>";
var_dump($object);
echo "</pre>";
}
}
//require __DIR__ . '/vendor/tiderjian/think-core/src/Common/functions.php';
//require __DIR__ . '/app/Common/Common/function.php';
require_once __DIR__ . '/vendor/autoload.php';
$dotenv = \Dotenv\Dotenv::create(__DIR__ );
$dotenv->load();
// 引入ThinkPHP入口文件
require 'vendor/tiderjian/think-core/src/ThinkPHP.php';
-----------------------------------
4. 检查composer.json的scripts, 将"post-root-package-install" 里的执行脚本移到"post-autoload-dump"第一行,如下
-----------------------------------
"scripts": {
"post-autoload-dump": [
"@php -r \"file_exists('.env') || copy('.env.example', '.env');\"",
"./vendor/bin/qsinstall",
"./vendor/bin/qsautoload",
"@php artisan package:discover --ansi",
"@php artisan qscmf:discover --ansi",
"php ./www/index.php /qscmf/CreateSymlink"
]
}
-----------------------------------
13.(升级到v10.0.0以上版本)(该版本仅做升级过渡,勿使用,命令行运行模式存在重大缺陷)
全局搜索有无使用ListBuilder->alterTableData 方法,如果有,则将里面的变量占位符{$字段名} 改为 __字段名__
lara/server.php 文件,找到$uri的定义,在其后面加上以下代码
----------------------------------
$_SERVER['DUSK_TEST'] = true;
----------------------------------
14.(升级到v11以上版本)
在v10版本先完成以下操作
数据库执行sql
--------------------------------
alter table migrations add column `after` tinyint(1) not null default 0 after migration
alter table migrations add column `run` tinyint(1) not null default 0 after migration
alter table migrations add column `before` tinyint(1) not null default 0 after migration
update migrations set `after`=1,`run`=1,`before`=1
--------------------------------
v11->v12升级步骤,点击查看
v13修改计划
- CompareBuilder FormBuilder ListBuilder 删除display方法
- 重构ButtonType save的保存提交算法 原因是SubTableBuilder也可能会采用该方法来设置 column 的class,当同时作为listBuilder的modal使用时,就会被错误的一并save提交先采用全局变量来开发重置能力,但全局变量容易存在冲突,并不是一种好的解决方案,仅作过渡使用,合理的做法应该让ListBuilder或者SubTableBuilder来决定Column 的TargetForm,避免互相影响。
- showFileUrl不再处理除本地文件存储外的功能,例如oss的处理