如何保证代码同时兼容5.1和6.0?


要想写出的代码同时兼容5.1和6.0并不难,CMF已经在核心层做了很多兼容性的工作,最大问题是数据库和模型相关的用法要做一些兼容性处理,其实就是写代码时只用两个版本都能兼容的用法就可以了。

最简单的兼容性处理

根据CMF版本号做相应兼容性处理

通过cmf_version()函数获取CMF版本号,并增加相应版本下的处理逻辑

if (strpos(cmf_version(), '6.') === 0) {
    //这里写6.0的处理逻辑
} else {
    //这里写5.1的处理逻辑
}

数据库和模型

不建议使用Db去操作数据库

建议统一使用模型去操作数据库

模型统一设置模型名

模型里都指定$name属性,如UserModel

<?php
namespace app\user\model;
use think\Model;

class UserModel extends Model{

    /**
     * 模型名称,不带前缀的表名,每个模型都要指定这个属性
     * @var string
     */
    protected $name = 'user';

    /*此处省略1000行...*/
}

更多兼容性问题,请查看文档https://www.kancloud.cn/thinkcmf/faq/2097612

也可以评论留言,大家一起研究兼容5.1和6.0应该注意哪些方面


评论

请登录后查看回复,立即登录
发表话题

源素材推荐

提问必知

0.话题发布后没及时显示,请联系官方QQ群管理;
1.话题支持代码,qq截屏直接粘贴,和QQ群一样;
2.问题描述清,比如服务器版本,程序版本;
3.能上代码,就不用文字;
4.把问题发到话题后再发QQ群;
5.如果感觉回复者解答的不错,可以发红包!
6.多帮助别人也是对自己的锻炼!
7.付费讨论中只有提问者和付费用户才可以查看回复

积分规则

1.评论积分+1;每天最多10次奖励
2.发布话题积分+1;每天最多5次奖励
3.垃圾评论积分-500;
4.黄色,暴力,违反我国法律评论直接封号


ThinkCMF 6.0.1发布啦,祝大家春节快乐!!立即体验!