# 升级指导

>[danger] 升级前请做好备份

[TOC=2,5]

## 5.0.190312升级到5.0.190419

### 升级步骤

1.备份数据库,和程序

2.覆盖新版本到老版本

3. 清除缓存

## 5.0.190111升级到5.0.190312

### 升级步骤

1.备份数据库,和程序

2.覆盖新版本到老版本

3. 清除缓存

### 升级注意

此版本已经删除`phpoffice/phpspreadsheet`,`phpoffice/phpexcel`,`dompdf/dompdf`第三方库,请自行安装

## 5.0.181231升级到5.0.190111

### 升级步骤

1.备份数据库,和程序

2.覆盖新版本到老版本

3. 清除缓存

## 5.0.181212升级到5.0.181231

### 升级步骤

1.备份数据库,程序

2.覆盖新版本到老版本

3.清除缓存

### 升级注意

* php版本要求提升到`5.6` 如果你项目中不需要用到`phpoffice/phpspreadsheet`且php无法升级到`5.6`,可以运行`composer remove phpoffice/phpspreadsheet`删除第三方库

* 规范控制器`_initialize`方法为`initialize`

* 调整`cmf_theme_path,cmf_default_theme,cmf_admin_theme_path,cmf_admin_default_theme`到 `template` 配置下

* `hook,hook_one`方法取消`$extra`参数

> 以上升级不影响正常用户升级,如果你有更改核心,请注意!

## 5.0.180901升级到5.0.181212

### 升级步骤

1.备份数据库,程序

2.覆盖新版本到老版本

3.清除缓存

数据库用法调整

>[info] 所有涉及数据库操作中`count`,`max`,`min`,`avg`,`sum`请不要在参数中增加空格

## 5.0.180626升级到5.0.180901

### 升级步骤

1.备份数据库,和程序

2.覆盖新版本到老版本

3. 同步钩子列表,在后台管理->插件中心->钩子列表->同步钩子列表

4. 清除缓存

## 5.0.180525升级到5.0.180626

### 升级步骤

1.备份数据库,和程序

2.覆盖新版本到老版本

3. 打开程序目录下 `update/update 5.0.180525 to 5.0.180626.sql` 把表前缀`cmf_`换成你自己的表前缀,然后执行此文件

4. 升级后请删除 `data/runtime`目录

5. 清除缓存

### 前台默认模板渲染规则改进

`fetch`方法的默认模板规则调整为操作方法的名称(不含操作后缀)转换为小写+下划线方式,而不是原来的直接把操作名称转小写。

举个例子,你的控制器操作方法名如果是`helloWorld`,之前版本使用:

~~~

$this->fetch();

~~~

渲染输出的时候会定位到 `helloworld.html`模板文件,而新版会自动定位到`hello_world.html`模板文件。

> 对于指定模板渲染的`fetch`方法不受影响,对于非驼峰操作方法名也没有影响。

## 5.0.180508升级到5.0.180525

```

可无缝升级

```

## 5.0.180501升级到5.0.180508

```

可无缝升级

```

## 5.0.180123升级到5.0.180501

### 升级步骤

1.备份数据库,和程序

2.覆盖新版本到老版本

3. 同步钩子列表,在后台管理->插件中心(原插件管理)->钩子列表->同步钩子列表

4. 清除缓存

### 由于TP升级需要进行如下代码用法调整

#### 数据库`EXP`用法调整

如果数组查询条件中使用了`exp`查询,必须做出如下调整:

~~~

// 错误

$where['id'] = ['exp', '>score'];

$model->where($where)->find();

// 正确

$where['id'] = Db::raw('>score');

$model->where($where)->find();

// 正确 推荐写法

$model->whereExp('id', '>score')->find();

~~~

如果需要使用`exp`表达式更新数据,必须使用`Db::raw()`方法或者`exp`方法。下面用法不再支持:

~~~

// 错误 不再支持

$data['score'] = ['exp', 'score+1'];

$model->where('id', 1)->update($data);

// 正确

$data['score'] = Db::raw('score+1');

$model->where('id', 1)->update($data);

// 正确 推荐用法

$model->where('id', 1)->exp('score', 'score+1')->update();

~~~

#### 缓存用法调整

>[danger] 如果你使用了闭包查询条件,并且使用了默认的查询缓存`cache()`或者`cache(true)`,新版本会抛出异常,请使用`cache('key')`替代,避免因为查询缓存无效而影响业务。

> 如果你在`order`方法中使用了SQL函数,请使用`orderRaw`方法或者`Db::raw()`方法替代。

对于复杂的`field/where/order`字符串参数的,如果发现存在错误,尽量使用`fieldRaw/whereRaw/orderRaw`替代(只能传入字符串参数)。

#### 默认模板渲染规则改进

由于`fetch`方法和`view`函数的默认模板规则调整为操作方法的名称(不含操作后缀)转换为小写+下划线方式,而不是原来的直接把操作名称转小写。

举个例子,你的控制器操作方法名如果是`helloWorld`,之前版本使用:

~~~

$this->fetch();

// 或者

view();

~~~

渲染输出的时候会定位到 `helloworld.html`模板文件,而新版会自动定位到`hello_world.html`模板文件。

> 对于指定模板渲染的`fetch`方法和`view`助手函数不受影响,对于非驼峰操作方法名也没有影响。

## 5.0.170927升级到5.0.180123

1.备份数据库,和程序

2.覆盖新版本到老版本

3. 打开程序目录下 `update/update 5.0.170927 to 5.0.180123.sql` 把表前缀`cmf_`换成你自己的表前缀,然后执行此文件

4. 升级后请删除 `data/runtime`目录

5. 同步钩子列表,在后台管理->插件中心(原插件管理)->钩子列表->同步钩子列表

6. 清除缓存

### 升级注意事项

**1.取消文章列表用户关联查询**

在文章列表中请将原来的`$vo.user_id`等用户相关信息获取改为`$vo.user.id`,`$vo.user.user_nickname`等

**2.优化注册和找回页面数字验证码获取逻辑**

此次升级中获取数字验证码时必须有图片验证码,防止有人用机器发送短信验证,请升级时注意此逻辑的变更

**文档已经同步到5.0.180123版本,请大家仔细阅读**

## 5.0.170808升级到5.0.170927

1. 覆盖新版本到老版本

2. 打开程序目录下 `update/update 5.0.170808 to 5.0.170912.sql` 把表前缀`cmf_`换成你自己的表前缀,然后执行此文件

3. 升级后请删除 `data/runtime`目录

## 5.0.170607升级到5.0.170927

1. 覆盖新版本到老版本

2. 打开程序目录下 `update/update 5.0.170607 to 5.0.170808.sql` 把表前缀`cmf_`换成你自己的表前缀,然后执行此文件

3. 打开程序目录下 `update/update 5.0.170808 to 5.0.170912.sql` 把表前缀`cmf_`换成你自己的表前缀,然后执行此文件

4. 升级后请删除 `data/runtime`目录

## 5.0.170520 RC4升级到5.0.170607

打开程序目录下 `update/update to 5.0.170607.sql` 把表前缀`cmf_`换成你自己的表前缀,然后执行此文件

## 5.0.170505 RC3升级到5.0.170520 RC4

打开程序目录下 `update/update to 5.0.170520.sql` 把表前缀`cmf_`换成你自己的表前缀,然后执行此文件

## 5.0.170422 RC2升级到5.0.170505 RC3

打开程序目录下 `update/update to 5.0.170505.sql` 把表前缀`cmf_`换成你自己的表前缀,然后执行此文件

## 5.0.170401 RC1升级到5.0.170422 RC2

打开程序目录下 `update/update to 5.0.170422.sql` 把表前缀`cmf_`换成你自己的表前缀,然后执行此文件

thinkcmf需要的php版本,升级指导 · ThinkCMF5开发手册 · 看云相关推荐

  1. weiphp看版本_序言 · weiphp5.0二次开发手册 · 看云

    WeiPHP5.0,公众号与小程序结合的最佳开发框架 WeiPHP5.0是一个开源,高效,简洁的移动应用系统,它实现一个后台同时管理和运营多个客户端(公众号,微信小程序,后续将支持支付宝小程序,百度小 ...

  2. pmu2008终端服务器,PMU升级指导.doc

    PMU升级指导 PMU升级指导 MISUN IP :-8 子掩码 服务器IP -9 安放IP 1 EISU IP 23 用配置线和交叉线将PMU与电脑相连. 配置线:一头连PMU的调试串口X2,一头连 ...

  3. C300 | 5680t | 新格林| AN5516 | 远程ONU升级指导

    ONU的远程管理升级 1.ZTE C300 OLT : 1.1 环境拓扑: PC1(filezilla server)------(uplink_default-vlanID)OLT--------- ...

  4. 华为emui3.1 android,P7 EMUI 3.1 回退到EMUI 3.0 华为官方版本操作指导

    本帖最后由 littlebai1119 于 2015-9-15 22:00 编辑 P7 EMUI 3.1回退到EMUI 3.0 华为官方版本操作指导 本文档指导用户从Android5.1+EMUI3. ...

  5. spring-cloud Finchley.SR2版本 升级微服务到springboot 2.0

    2019独角兽企业重金招聘Python工程师标准>>> 读书笔记 spring-cloud Finchley.SR2版本 升级微服务到springboot 2.0 贴码云 https ...

  6. 华为手机SD卡升级指导

    华为手机SD卡升级指导 升级环境的准备: 将提供的SD卡升级包update.app copy到sd卡的/dload/目录下:注意:SD卡升级包固定名称为update.app, SD卡上的目录也是固定为 ...

  7. 华为刘海屏手机安卓O版本适配指导,参考华为

    华为刘海屏手机安卓O版本适配指导 1. 背景 刘海屏指的是手机屏幕正上方由于追求极致边框而采用的一种手机解决方案.因形似刘海儿而得名.也有一些其他叫法:挖孔屏.凹口屏等,本文档统一按照刘海屏来命名.市 ...

  8. 在线阅读-阿里Java开发手册最强版本【泰山版】

    前言 <Java 开发手册>是阿里巴巴集团技术团队的集体智慧结晶和经验总结,经历了多次大规模一 线实战的检验及不断完善,公开到业界后,众多社区开发者踊跃参与,共同打磨完善,系统化地整理 成 ...

  9. 专有云传统HSF升级Pandora Boot开发

    简介:专有云传统HSF升级Pandora Boot开发 本次最佳实践,分析传统HSF应用的劣势及升级至Pandora Boot开发的优势.将结合HSF代码和Pandora Boot代码进行详解传统HS ...

最新文章

  1. Scala的基本语法总结
  2. linux程序员的proc文件系统
  3. node 压缩图片_为了你安全压缩图片我操碎了心
  4. 安卓USB开发教程 五 安卓 AOA 1.0
  5. python百度百科-python语言概述
  6. SharePoint 2010: Claims-based Authentication
  7. 基于RGB图像的机器人抓取算法汇总
  8. 渗透之——Metasploit命令及模块
  9. 51单片机汇编程序,温度报警项目
  10. 腾讯统一播放器 API 文档2.0
  11. 排名前十的天使投资机构
  12. 计算机的存储器有哪2类,存储器有哪两种
  13. 桌面ICON的红图标
  14. UI自动化测试(Selenium,Unittest,DDT)
  15. 30 岁的码农人生 ——人生至暗时,你依然能窥见光明
  16. 小巧的本地缓存Jodd
  17. 采药问题 c语言程序,采药-动态规划题解(C语言代码)
  18. Redhat linux 安装 gcc编译器,Gcc源码包,rpm包安装方法!
  19. 微信Android资源混淆打包工具
  20. Microsoft visual Studio2017 中番茄visual assist 破解

热门文章

  1. 一篇学完:GAMES101:现代计算机图形学入门 学习笔记
  2. Domo 提供与 Snowpark 的集成,Snowflake 的全新开发者体验
  3. 小白兔是世界上笑话最多的禽兽
  4. ckeditor粘贴上传图片
  5. 【总目录4】CC++、OpenCV、Qt、单片机总结大全
  6. BDB 入门篇 第3章 DPL First Steps 直接持久层第一步
  7. Android翻页效果
  8. 全套C C++ 编程视频课程收录
  9. PCL学习二:PCL基础应用教程
  10. 示波器测量晶振、万用表测量晶振的方法