tp6.0相对于tp5.1的变化

下面只列出了现在工作中遇到的比较常用的改动。更详细的改动请参考:参考, 改动量较大,除非重构,不推荐从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版本

by zhangfeng

原文地址:https://www.cnblogs.com/widgetbox/p/13408984.html