视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
thinkphp5升级步骤
2020-11-03 23:11:26 责编:小采
文档

ThinkPHP5.0升级5.1全纪录

thinkphp5升级步骤

并拆分为app.php、cache.php 等配置文件,系统默认的配置文件清单如下:

因为项目是用tp5.1开发的,网上找了一个不错的商城系统,但是却是5.0开发的,因此将5这个商城升级成了5.1。其中坑不少,特此记录,以利后人。

1、首先就是facade。

5.0没这东西。5.1新增的门面。需要将use里对应的。对应的如下表:

2、配置文件调整

原有的配置文件config.php从应用目录移动到和应用目录同级的config目录,并拆分为app.php、cache.php 等配置文件,系统默认的配置文件清单如下:

换而言之就是原来所有的一级配置都为一个配置文件

原来的应用extra目录下面的配置文件直接移动到config目录下面。

原来模块的配置文件(包括extra目录下面的)直接移动到模块下的config目录,然后参考上面的应用配置文件进行调整。

5.1的配置文件全部采用二级配置方式,所有不带一级配置名的参数都会作为app的二级配置,例如

config('app_debug');

等同于

config('app.app_debug');

3、常量调整

5.1取消了所有的框架内置常量(不影响应用代码中的自定义常量),如需获取,请使用thinkacadeApp类的内置方法以及thinkacadeEnv类获取,下面给出的是5.0和5.1的常量对照表:

4、模型调整

模型的数据集查询始终返回数据集对象而不再是数组;

模型的数据表主键如果不是id,则必须设置模型的pk属性;

软删除trait引入更改为 use thinkmodelconcernSoftDelete;

全局查询范围base方法中无需添加软删除条件;

聚合模型功能废除,使用关联模型配合关联自动写入功能替代,更灵活;

模型的查询范围scope方法调用后只能使用数据库的查询方法;

取消模型的数据验证功能,请使用控制器验证或者路由验证替代;

这个模型调整,一定要看得细之又细。例如第二点里的主键。商城系统里大量用到了关联模型,数据表里的主键不管是什么名,5.0时代都是可以自动获取的,但是5.1里默认都是id,必须用$pk=user_id指定主键名,否则会报"模型属性不存在"这样的错误,坑了我2小时。

5、控制器调整

_initialize方法更改为initialize(坑了我1小时,眼神不好使的,都会被坑)

6、最后一个步骤不要忘了:清空缓存目录下的所有文件

7、其他事宜,建议详细看TP5.1的文档,不要放过一个字。

推荐学习:thinkphp5

下载本文
显示全文
专题