前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ThinkCMF 修改thinkphp5.1 版本

ThinkCMF 修改thinkphp5.1 版本

作者头像
写PHP的老王
发布2019-08-12 15:28:50
1.1K0
发布2019-08-12 15:28:50
举报
文章被收录于专栏:写PHP的老王

上一个项目在api上使用了thinkphp5.1,但是后台还是使用thinkcmf5.0,tp版本是5.0 .当时就想统一thinkphp版本。最近得空有时间修改,因此在ThinkCMF 5.0.180901基础上将thinkphp版本改成5.1.29 。修改后,已经对本地测试的不兼容进行修改。

ThinkCMF修改基础版本

代码语言:javascript
复制
ThinkCMF 5.0.180901 正式版

ThinkPHP版本

代码语言:javascript
复制
thinkphp5.1.29

目录结构改动

  • vendor目录移动到根目录 修改原因: \think\Loader 中注册vendor目录是写死的,没办法动态修改,除非重写Loader self::$composerPath = $rootPath . 'vendor' . DIRECTORY_SEPARATOR . 'composer' . DIRECTORY_SEPARATOR;
  • extend目录移动到根目录 修改原因: \think\Loader 中注册vendor目录是写死的,没办法动态修改,除非重写Loader self::addAutoLoadDir($rootPath . 'extend');
  • 添加config目录,route目录 原因: thinkphp5.1 配置重写整理,统一放在config目录,路由配置统一放在route目录
  • 添加app/common.php文件 添加viewreplace函数,用于兼容thinkcmf5.0 模板替换配置关键字操作,替换关键字根据配置view_replace_str确定。原有模板中ROOT__, _TMPL_等关键字统一替换成{:viewreplace('__ROOT')}

配置修改

  • thinkcmf 原有配置多数放置在config/app.php文件中,其他配置,根据thinkphp5.1文档配置。extra_file_list,view_replace_str两个配置不再是系统配置,为了兼容thinkcmf 依然保留在app.php中。
  • 在thinkphp5.1 默认app.php中添加include 'data/conf/config.php'
  • 在thinkphp5.1 默认database.php 添加include 'data/conf/database.php';

模板文件修改

  • 5.1模板不支持关键字替换,需要手动实现。如果写ROOT__ 如果不处理,则模板会直接输出__ROOT
  • 修改cmf/lib/taglib/Cmf.php中 __CAPTCHA_SRC=url('/newcaptcha/admin') 修改获取验证码路由。路由配置在cmf/common.php文件中定义。避免走默认的验证码控制器。
  • cmf/lib/taglib/Cmf.php中tagHook函数,$param = 'null';//'$temp' . uniqid(); 避免没有参数的hook错误

不兼容地方

  • 行为扩展不支持引用传递。如果需要引用传递,需要额外创建一个对象。隐藏修改代码删除了cmf/behavior/ 所有行为中引用参数定义。
  • think\Model 本身有个一个exists方法,如果原有代码中有在model中定义exists方法,需要确认是否有bug。app/admin/model/RouteModel 有exists方法,参数与基类定义不一致,需要修改方法名。
  • thinkphp5.1 查询语句和5.0不兼容。数组查询需要使用\think\db\Where 创建一个where查询对象。5.1不支持exp查询。
  • 5.1 query 没有getError 方法,如有原有代码有使用query对象获取查询后的错误,需要修改成query->getConnection()->getError();
  • column查询,查询所有字段用column(null)
  • in查询不能使用php ('field'=>['in',$data]) 而是使用'field'=>$data

其他修改

  • 静态调用修改,5.1 一些静态调用类发生改变,Config,Request,Env等,具体查看thinkphp5.1 升级指导文档
  • 5.1 常量做了很大改变,此次修改在入口定义了一些删除的常量,但是难免有些遗漏,具体查阅升级指导文档
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-12-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 写PHP的老王 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • ThinkCMF修改基础版本
  • ThinkPHP版本
  • 目录结构改动
  • 配置修改
  • 模板文件修改
  • 不兼容地方
  • 其他修改
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档