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

# 升级指导

>[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_`换成你自己的表前缀,然后执行此文件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值