TP5和TP3.2的区别
1.控制器输出
return $this->fetch("index/hello");
$this->display
单字母函数去掉了 如:M() D() U() S() C()
官方说明地址:http://www.kancloud.cn/thinkphp/thinkphp5_quickstart/145260
为啥单字母函数去掉了?
单字母函数是TP历史上争议较大的问题,应该说单字母函数的诞生是有历史原因的,但已经到了退出历史舞台的时候了,可能很多人习惯了单字母函数带来的便捷(虽然同时我们也饱受着某些学院用户的抱怨)。
基于几个原因废除了单字母函数:
(1)5.0 核心已经不依赖任何函数 只是对常用的操作封装提供了助手函数
(2)助手函数是可以完全自己定义和修改,并不影响其他的使用
(3)现在的IDE提示和自动完成功能已经非常强大了,所以用不用助手函数,或者是否需要改成原来的单字母函数,全凭开发者个人意愿。
核心框架不依赖任何助手函数,系统只是默认加载了助手函数,配置如下:
// 扩展函数文件定义 'extra_file_list' => [THINK_PATH . 'helper' . EXT],
因此,你可以随意修改助手函数的名称或者添加自己的助手函数,然后修改配置为:
// 扩展函数文件定义 'extra_file_list' => [ APP_PATH . 'helper' . EXT],
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');
3.为什么不能识别驼峰命名的控制器5.0版本默认情况下不区分URL的大小写,也就是说URL里面的控制器和操作都会强制转小写然后去定位控制器类,因此
http://serverName/index/UserType/addType
// 和下面的访问是等效的
http://serverName/index/usertype/addtype
如果需要访问驼峰命名法的UserType控制器,有两种方式
一、使用下面的URL地址访问
http://serverName/index/user_type/addtype
二、配置url_convert参数,关闭URL强制转换
// 关闭自动转换
'url_convert' => false,
4.TP5版本的模板标签界定符由原来id<>更改为{}
<volist name="lsit" id="vo">
{$vo.id}:{$vo.name}
</volist>
改为
{volist name="list" id="vo"}
{$vo.id}:{$vo.name}
{/volist}
5.控制器的类名默认不带Controller后缀 模型类的后缀不带Model
6.3.2版本和5版本 数据库写法不一样
M('User')->where(['name'=>'thinkphp'])->find();
db('User')->where('name','thinkphp')->find();
7. 模型3.2和5版本区别
D('User')->where(['name''=>'thinkphp'])->find();
model('User')->where('name','thinkphp')->find();
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
MODULE_NAME
CONTROLLER_NAME
ACTION_NAME
APP_NAMESPACE
APP_DEBUG MODULE_PATH
TP5和TP3.2的区别的更多相关文章
- TP5和TP3.2的使用区别
模板标签不一样: TP5 可在配置文件中自行定义自己喜欢的标签 TP5 使用双标签 如:{foreach} {/foreach} TP3 : <> TP5 :{} 调用数据表方式: M( ...
- tp5.0和tp3.2的区别
1. 控制器输出return $this->fetch(); ----5$this->display(); ----3.2 单字母函数去掉了 如:M() D() U() S() C() 3 ...
- TP5与TP3.X对比
首先声明本章节并非是指导升级旧的项目到5.0,而是为了使用3.X版本的开发者更快的熟悉并上手这个全新的版本.同时也强烈建议开发者抛弃之前旧的思维模式,因为5.0是一个全新的颠覆重构版本. 需要摒弃的3 ...
- TP5 belongsTo 和 hasOne的区别
hasOne和belongsTo这两种方法都可以应用在一对一关联上,但是他们也是有区别的: belongsTo: 从属关系:就是谁为主的问题 A:{id,name,sex} B:{id,name.A_ ...
- tp5 修改自带success或error跳转模板页面
tp5 修改自带success或error跳转模板页面 我们在使用tp5或者tp3.2的时候,用的成功或者失败跳转提示页面一般是用框架的.在后续开发过程中,根据实际项目需要,也是可以更改的,在此分享一 ...
- TP5 多条件whereOr查询
问题背景:最近在用ThinkPHP 5开发项目的过程中,发现根据筛选条件做or查询的时候,连贯操作不可以使用where进行条件查询了. 首先列出一个user数据表的信息: uid uname grad ...
- mysql安装使用笔记
mysql2008年被sun公司10亿美元收购, 后sun被oracle收购. widenius : 维德纽斯重新写的mysql的分支 mariaDB. 白发程序员, 是由 瑞典mysql AB公司开 ...
- php开发面试题---lavarel和tp的区别是什么(呕心整理)
php开发面试题---lavarel和tp的区别是什么(呕心整理) 一.总结 一句话总结: 反思的回顾非常有用,因为决定了我的方向和技巧 以战养己,这是非常非常好的方式 主要从大小.功能.安全性.操作 ...
- ThinkPHP5 使用create 获取表单所有字段
TP5没有 TP3的那个create创建表单字段,如果字段太多,写起来是非常麻烦 只需要在 框架里面 think/db/Query.php 里面加上函数 public function create( ...
随机推荐
- iOS开发-NSUndoManager撤销(undo)和重做(redo)
程序开发中我们经常会用到的两个快捷键Ctrl+Z和Ctrl+C,撤销和复制,Cocoa开发也可以实现这两个操作,为我们提供非常简单的操作类NSUndoManger,也可以称之为撤销管理器,NSUndo ...
- 内联汇编中的asm和__asm__
基本的内联汇编代码: asm格式: asm("assembly code"): 使用替换的关键字: 如果必须的话,可以改变用于标识内联汇编代码段的关键字asm.ANSI C规范 ...
- 《Unix&Linux大学教程》学习笔记5 :正则表达式
1:Unix下正则表达式规则
- Android——TabHost(标签容器)相关知识总结贴
android 2.3 r1 中文 api (58) —— TabHost http://www.apkbus.com/android-18911-1-1.html android中文api (5 ...
- Boinx FotoMagico for Mac(电子相册制作工具)破解版安装
1.软件简介 FotoMagico 是 macOS 系统上一款非常好用的电子视频相册制作工具,FotoMagico 被誉为 Mac 上的「会声会影」,我们可以使用这款软件快速的制作出精美的音乐视 ...
- sql server 2008 express 安装的时提示“重启计算机失败"
sql server 2008 express 安装的时提示"重启计算机失败" 解决办法: 打开注册表编辑器(regedit.exe),在HKEY_LOCAL_MACHINE\SY ...
- Intro to Jedis – the Java Redis Client Library
转自:http://www.baeldung.com/jedis-java-redis-client-library 1. Overview This article is an introducti ...
- App界面设计规范-字体规范
通过对不同类型的app进行总结,总结出app的字体规范. 一.字体选择 1.IOS:苹果ios 9系统开始,系统最新的默认中文字体是:苹方.英文字体是: San Francisco 2.Android ...
- 配合angularjs中interceptor一劳永逸的加载$ionicloading的方法
在我们日常的项目开发中,每当页面需要和服务端存在交互的时候,为了界面的友好,我们都会在界面中给个loading的加载图标,当从服务端获取到数据或者已经把本地数据送到服务端并且得到相应的回应的时候我们就 ...
- 【linux】——cscope
cscope是一款linux下的软件,其功能主要是用在阅读代码,堪称Windows下的Source Insight,但是配合vim使用,效率无与伦比.如需了解其具体使用,请先安装vim,然后在终端执行 ...