下面只列出了现在工作中遇到的比较常用的改动。更详细的改动请参考:参考, 改动量较大,除非重构,不推荐从tp5.1升级到tp6.0

多应用模式的变更

tp6.0多应用模式作为​​service​​​加入到框架中,而不是框架自带,需要单独安装​​composer require topthink/think-multi-app​

行为调整

行为和Hook已经用新版的事件机制替代,需要把你的行为改成事件响应或者中间件(部分请求拦截的行为可以直接改为中间件)。 

配置文件变更


  1. 所有配置读取必须从第一级开始配置, 如之前的​​config('example')​​​直接读​​app.php​​​中的​​example​​配置现在不再被支持. 

日志配置的变化


  1. debug模式下不再有默认的请求日志。如果需要可以手动添加。推荐直接用nginx日志。

//tp5.1 thinkphp/library/think/App.php
// 记录路由和请求信息
if ($this->appDebug) {
$this->log('[ ROUTE ] ' . var_export($this->request->routeInfo(), true));
$this->log('[ HEADER ] ' . var_export($this->request->header(), true));
$this->log('[ PARAM ] ' . var_export($this->request->param(), true));
}

  1. debug模式需要在​​.env​​中开启​​APP_DEBUG​​,而不是​​app.php​​中的​​app_debug​​。
  2. 在debug模式(​​.env.APP_DEBUG​​)下不会自动输出报错信息。需要使用​​show_error_msg​​单独打开。
  3. tp6日志增加了通道的概念,可以支持不同的日志输出,如文件、电子邮件等。

模型变更


  1. 取消​​eq/neq/gt/lt/egt/elt​​操作。
  2. 取消setInc, setDec方法。

参考

5.1升级到6.0版本


zhangfeng