ThinkPHP-代码重构

来自站长百科
跳转至: 导航、​ 搜索

导航:返回上一页

1.5版本通过兼容模式可以运行在新版下面,但是使用的核心仍然是1.5版本的核心。因为新版的内核是完全重构的,接口有所改变,所以如果需要完全迁移到新的2.0版本,只有通过代码重构的方式实现,下面是1.5的代码重构到2.0版本的相关建议:

参数方式的数据查询改成连贯操作.

例如:$Model->findall('id>1','id,name','id desc','10,100');

应该改成

$Model->where('id>1')->order('id desc')->field('id,name')->limit('10,100')->select();

  • 布局方法layout用display替换(参考布局模板部分内容);
  • URL方法换成U方法(用法也需要改变 参考URL生成部分内容);
  • 部分查询方法需要继承高级模型类AdvModel才可以使用,包括topN getN first last ;
  • 原来Model的文本字段和乐观锁功能需要继承AdvModel才可使用;
  • Action类的redirect方法接口因为URL方法的改变也有所改变;
  • Model类的addAll,deleteAll方法已经删除;
  • Model类的getFields方法请改成getField;
  • Model类的deleteBy动态方法删除;
  • Model类的自动验证和自动完成定义的时间定义格式改变(参考自动验证和自动完成部分内容);
  • 视图模型和关联模型已经分离出Model类,需要另外继承(参考视图模型和关联模型部分内容);
  • 数据库延迟查询功能已经取消;
  • RBAC也已经分离出核心,需要自己调用;
  • 模板的点语法默认是数组输出了;
  • Session可以设置是否需要自动开启;
  • 系统函数库删除了一些核心不依赖的函数,移入了扩展函数库extend.php 需要的话自行放入项目函数库中即可;
  • import方法的匹配导入和子目录导入由于性能问题不再支持;
  • 浏览器防刷新功能已经删除(改由行为扩展提供);
  • URL伪装功能已经删除;
  • 编码自动转换功能已经取消,请自行用auto_charset转换编码;
  • 模板文件中导入外部jscss不需要导入Html标签库;
  • Html标签库已经作为扩展提供,不再内置;
  • 模板引擎的sublist、resultset和subeach标签已经取消,分别使用volist和foreach替代;


参考资料[ ]