1. 控制器输出
return $this->fetch(); ----5
$this->display(); ----3.2

单字母函数去掉了 如:M() D() U() S() C()

3.2 ---------5
G() --------- debug() 记录时间(微秒)和内存使用情况
E() --------- exception() 抛出异常处理
C() --------- config() 获取和设置配置参数
I() --------- input() 获取输入数据,支持默认值和过滤
W() --------- widget() 染输出Widget
D() --------- model() 实例化Model
S() --------- cache() 缓存管理
U() --------- url() Url生成

2. 原来3.2版本的模型的getField方法应该如何使用?
原先模型类的getField方法,在5.0的数据库Query类中拆分两个方法,一个value方法用于查询某个行的某个值和一个column方法用于查询某个列的值,用法如下:
查询某个字段的值可以用
//返回某个字段的值
Db::table('think_user')->where('id', 1)->value('name');

原来的举个查询方法依然有效
Db::table('think_user')->count();
Db::table('think_user')->max('score');

查询某一列的值
//返回数组
Db::table('think_user')->where('status', 1)->column('name');
//指定id字段作为索引
Db::table('think_user')->where('status', 1)->column('name','id');

3.为什么不能识别驼峰法命名的控制器,5.0版本默认情况下不区分URL的大小写,也就是说URL里面的控制器和操作都会强制转小写然后去定位控制器类,因此
http://serverName/index/UserType/addType
//和下面的访问是等效的
http://serverName/index/usertype/addtype

如果需要访问驼峰法命名的UserType控制器,有两种方式
(1).使用下面的URL地址访问
http://serverName/index/user_type/addtype
(2).配置url_convert参数,关闭URL强制转换
//关闭自动转换
'url_convert' => false,

4. tp5版本的模板标签界定符由原来的<>更改为{}
<volist name="list" id="val">
{$val.id}:{$val.name}
</volist>
改为:
{volist name="list" id="val"}
{$val.id}:{$val.name}
{/volist}

5. 控制器的类名默认不带Controller后缀  模型类的后缀不再带Model
6. 3.2版本和5版本 数据库写法不一样
M('User')->where(['name' => 'think'])->find(); ----3.2
db('User')->where(['name' => 'think'])->find(); ----5

7. 模型区别
D('User')->where(['name' => 'think'])->find(); ----3.2
model('User')->where(['name' => 'think'])->find(); ----5

8. 请求对象和响应对象
5.0新增请求对象Request和响应对象Response, Request统一处理请求和获取请求信息,Response对象负责输出酷虎的或者浏览器响应

9. 常量简化
5.0版本废弃了原来的大部分常量定义,仅仅保留了框架的路径常量定义,其余的常量可以使用App类获取Request类相关属性获取方法来完成,或者自己重新定义需要的常量
REQUEST_METHOD
IS_GET
IS_POST
IS_PUT
IS_DELETE
IS_AJAX
__EXT__
COMMON_MODULE
CONTROLLER_NAME
ACTION_NAME
APP_NAMESPACE
APP_DEBUG 
MODULE_PATH

tp5.0和tp3.2的区别的更多相关文章

  1. tp5.0和tp3.2中前台模板IF标签和FOREACH的区别

    IF标签 tp3.2 <if condition="($name eq 1) OR ($name gt 100) "> value1 <elseif condit ...

  2. 【TP3.2与TP5.0区别】

    Tp3.2 和 Tp5.0之间的区别   5.0版本和之前版本的差异较大,本篇对熟悉3.2版本的用户给出了一些5.0的主要区别. URL和路由 5.0的URL访问不再支持普通URL模式,路由也不支持正 ...

  3. tp3.2 事务 和 tp5.0事务

    tp3.2: 来源:https://www.kancloud.cn/thinkphp-development/tp323/423369 和: https://blog.csdn.net/mengzuc ...

  4. ThinkPHP5.0框架开发--第1章 Tp5.0安装

    ThinkPHP5.0框架开发--第1章 Tp5.0安装 第1章 Tp5.0 安装 ======================================================== 今 ...

  5. ThinkPHP5.0框架开发--第8章 TP5.0 模型

    ThinkPHP5.0框架开发--第8章 TP5.0 模型 第8章 TP5.0 模型 ================================================= 今日学习 1. ...

  6. Byte,TBytes,array of Byte, array[0..9] of byte的区别

    Byte前面已经说是存放bit的单元,是电脑内存的基本单位,byte表示0-255中的256个数字 下面为Byte的用法: var B: Byte; // 表示0-255的数字 begin B := ...

  7. Tp5.0 PHPMailer邮件发送

    今天突然想起来邮件发送,就看了一下PHPmailer,其实这个用起来很简单,都是封装好的 https://github.com/PHPMailer/PHPMailer,直接下载下来之后,把他放入TP5 ...

  8. tp5.0.7 修复getshell漏洞

    这里 接手项目用的是 tp5.0.7 突然想到前段事件的tp bug 事件 就试了下 发现确实有这种情况 参考帖子: https://bbs.ichunqiu.com/thread-48687-1-1 ...

  9. TP5.0 PHPExcel 数据表格导出导入(引)

    TP5.0 PHPExcel 数据表格导出导入(引) 今天看的是PHPExcel这个扩展库,Comporse 下载不下来,最后只能自己去github里面手动下载,但有一个问题就是下载下来的PHPExc ...

随机推荐

  1. PHP Help Guideds

    how does php work with Apache? https://stillat.com/blog/2014/04/02/how-does-php-work-with-the-web-se ...

  2. MyBatis的基本注解

    MyBatis的基本注解: 增删改查 @Select("select * from teacher") public List<Teacher> selAll(); / ...

  3. arguments.callee实现深拷贝

    最近正在看一个腾讯课堂里面的学习视频中的js知识点,然后有一个深拷贝的题,于是就做了一下,使用arguments.callee实现深拷贝. <script type="text/jav ...

  4. CSS标题线(删除线贯穿线效果)实现之一二

    缘起 其实看到这个问题,心里已经默默把代码已经码好了~,不就想下面这样嘛:JSBIN代码示例 嗯,是的,我们日常确实基本上就是用的这种方式,也没啥问题呀~,来个背景色定下位就欧拉欧拉的了. 不过,因为 ...

  5. Spark学习之路 (二十七)图简介[转]

    test test test test test test test test test 图 基本概念 图是由顶点集合(vertex)及顶点间的关系集合(边edge)组成的一种数据结构. 这里的图并非 ...

  6. Selenium实战(二)——调用JavaScript之execute_script()方法

    1.浏览器滚动条的拖动,不能依靠WebDriver提供的API来实现,用于调整浏览器滚动条位置的JavaScript代码如下: window.scrollTo(0,450); window.scrol ...

  7. 错误 CS8107 C# 7.0 中不支持功能“xxxxxx”。请使用 7.1 或更高的语言版本。

    解决方法:项目右键属性 —> 生成 —> 找到最下面的高级按钮,点击高级按钮 —> 常规 —> 语言版本 —> 选择 C#最新次要版本,或者比当前版本更高的版本即可,点击 ...

  8. JS 获取验证码 倒计时

    setInterval 一个定时器搞定 <style> button{ background: #45BCF9; color: #fff; padding: 4px 10px; borde ...

  9. C#中怎样在ToolStripMenuItem下再添加子级菜单

    场景 在右键菜单ContextMenuStrip下添加子菜单选项可以通过 ContextMenuStrip menuStrip ToolStripMenuItem mnuChartOption = n ...

  10. Mysql分库分表导出导入和数据量统计测试

    需求:添加创建了分库分表后,业务可能将数据已经写入,但未来得及接入到otter汇总库.接入汇总库前需要初始化这部分数据. 1.导出 ip_port_list ) len=${#ip_port_list ...