1.URL访问

可以看到,无论是URL访问还是命令行访问,都采用PATH_INFO访问地址,其中PATH_INFO的分隔符是可以设置的。注意:5.0取消了URL模式的概念,并且普通模式的URL访问不再支持,但参数可以支持普通方式传值。

即原来的普通模式http://localhost/?m=home&c=user&a=login&var=value(用参数传递来指定模块控制器方法)和兼容模式http://localhost/?s=/home/user/login/var/value(用唯一参数传递模块控制器方法和参数)都废除了。剩下的pathinfo模式和重写模式都可以使用,而且更美观。

2.Traits引入

Trait 是PHP5.4引入的一个新特性。通过两行语句(PHP5.5以上只需第二句)就可以引入指定文件里的方法。感觉和接口差不多,但是trait是有方法体的,所以突出了复用性,接口突出的是多态。讲真我比较喜欢trait,所以看到TP5有这个特性也是眼前一亮。

load_trait('controller/Jump'); // 引入traits\controller\Jump

use \traits\controller\Jump;

3.路由定义

TP5的路由的变化真的太大了...TP3的时候路由还是默认路由(模块控制器方法 对应就是 相应的路由),TP5就变成了可以配置成任何字符的路由,虽然比之前繁琐了一些,但是这样使得路由定义更强大了,BTW感觉有点像Lavarel。

// 注册路由到index模块的News控制器的read操作

Route::rule('new/:id','index/index/read');

除了rule方法,还有get,post,delete方法之类,反正真的挺强大的。

4.控制器 前置操作

protected $beforeActionList = [

'first',

'second' =>  ['except'=>'hello'],

'three'  =>  ['only'=>'hello,data'],

];

这个新功能也是让我眼前一亮的,因为在实际开发中应该会频繁用到,比如登录Session验证就需要在每个方法开头进行,不然用户没登录就可以执行功能。代码分别表示全部方法都前置执行first,除了hello其他方法都前置执行second,只有hello和data方法前置执行three。

5.I方法变成了一大串的函数

// 获取当前请求的name变量

Request::instance()->param('name');// 获取当前请求的所有变量(经过过滤)

Request::instance()->param();// 获取当前请求的所有变量(原始数据)

Request::instance()->param(false);// 获取当前请求的所有变量(包含上传文件)

Request::instance()->param(true);

本来获取post过来的id只需I(‘post.id’)或者I(‘id’)就可以,现在要写Request::instance()->param('id');这一串东西....还要use Think\Request;麻烦了好多...本来用I方法就是因为方便,比起$_POST()要少写很多,现在这个方法真的太麻烦了...

ThinkPHP5.0 取消了用于判断请求类型的系统常量(如IS_GET,IS_POST等),统一采用 think\Request类 处理请求类型。

IS_GET == Request::instance()->isGet()

IS_POST == Request::instance()->isPost()

嗯也是变长变麻烦了...

在看TP5的时候还稍微用了一下,印象深刻的居然是错误提示...比之前版本的提示好看而且也详细多了。

BTW,希望TP越来越强大!

如有错误,恳请指点。_(:з」∠)_,谢谢观看。

参考:ThinkPHP5.0完全开发手册(http://www.kancloud.cn/manual/thinkphp5)

PHP技术亮点,我眼里的THINKPHP5新亮点(1)相关推荐

  1. 《新神榜:杨戬》亮点抢先看!追光新神话宇宙再添超燃国风巨作

    <新神榜:杨戬>亮点抢先看!追光新神话宇宙再添超燃国风巨作!! 由上海追光影业有限公司.浙江横店影业有限公司.哔哩哔哩影业(天津)有限公司.抖音文化(厦门)有限公司出品,阿里影业旗下动画厂 ...

  2. 实例探讨公共资源交易平台新亮点

    随着信息化技术的发展,以互联网.人工智能.云计算为代表的信息技术掀开"数字中国""数字社会"的现代化图景,六盘水公共资源交易中心应时而变,以数字化转型助力公共资 ...

  3. 华为G9怎么找到云相册_华为云相册,三大亮点功能助力P9摄影新体验

    原标题:华为云相册,三大亮点功能助力P9摄影新体验 [前言]:徕卡相机时代,大家用老相册保存照片.华为P9,携手徕卡跨进智能拍摄新时代时,还布局了"华为智能云相册".华为云相册,不 ...

  4. 阿里技术行丨未来已来新零售技术沙龙报名启动!

    原文链接 摘要: 去年,马老师在阿里云栖大会上首提"新零售"的概念,指出线上线下加上现代物流合在一起,才能真正创造出新的零售,新零售也迅速成为业界关注的热点. 今年3月,阿里研究院 ...

  5. 刷脸支付实现刷脸即会员的新亮点

    刷脸支付是移动支付的趋势,它的到来使整个零售行业更加方便.快捷为顾客服务,支付宝会进行大力推广,不久的将来必定取代二维码,就像二维码取代现金一样.蜻蜓二代的问世,也标志着刷脸支付进入了一个全新的阶段刷 ...

  6. 2005年IT就业新亮点

    IT就业的热,无论是从各地举办的IT招聘会场场爆满的情况可以看出些端倪,体验到莘莘学子对IT的热情与向往,还是随便翻开各种大大小小媒体的招聘版,IT工程师等职位总是出现在最抢眼的位置,再注上" ...

  7. 以 Kubernetes 为代表的容器技术,已成为云计算的新界面

    来源 | 阿里巴巴云原生公众号 作者 | 志敏.智清 2020 年 双11,阿里核心系统实现了全面云原生化,扛住了史上最大流量洪峰,向业界传达出了"云原生正在大规模落地"的信号.这 ...

  8. RFID技术正助力物流行业进入新时代

    随着工业4.0概念的提出,中国开始从传统制造业大国向制造业强国迈进,同时对企业的创新能力,自动化.信息化水平有了更高要求.作为企业第三方利润源泉的物流业,在不断提升为企业服务的智能化水平的过程中,RF ...

  9. 长春师范大学计算机科学与技术团委,计算机科学与技术系团总支学生分会纳新公告...

    计算机科学与技术系 团总支学生分会纳新公告 一.纳新部门:计算机科学与技术系团总支学生分会 二.纳新时间:笔试:2013年10月11日晚7:30-9:00 面试:2013年10月13日下午3:00-5 ...

最新文章

  1. FC SAN与IP SAN的比较
  2. ubuntu下安装ftp服务器
  3. linux环境下搭建osm_web服务器一(Postgresql配置及osm2pgsql原始数据导入):
  4. c#:未将对象引用设置到对象的实例--可能出现的问题总结(转)
  5. 什么是NIO?NIO的原理是什么机制?
  6. java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.Integer;
  7. 全志A33-USB虚拟网卡的配置与使用
  8. python两个线程交替打印_三线程按顺序交替打印ABC的四种方法
  9. 【IDEA】Warning:scala: skipping Scala files without a Scala SDK in module(s) systemimport
  10. 查看eclipse中项目部署位置
  11. 把一个数组的值赋给另一个数组(VB.NET)
  12. 【洛谷2822】组合数问题(组合数的递推公式和杨辉三角)
  13. java通讯录 批量生成 .vcf文件, .csv文件批量生成 .vcf,手机自动导入
  14. 网页教程:为网站的Web Robot 设计路标
  15. win10如何删除计算机用户,在WIN10账户下怎么删除administrator账户
  16. 串口调试助手linux设备串口,linux下安装串口调试助手
  17. 微信会员卡如何为不同用户设置不同有效期?
  18. flutter 使用 高德地图选取位置
  19. 上车了!AR摩托车头盔了解一下?
  20. 他们真的在意信用么?

热门文章

  1. java的多态代码例子_java 多态实例代码
  2. 在CentOS6中安装Docker(新服务器不推荐)
  3. C - Watchmen
  4. mysql中sysdate(),curdate(),curtime(),now()
  5. -bash: ifconfig: 未找到命令
  6. java mm_Java网络编程-你是GG还是MM?
  7. php curlopen,php自动提交表单的方法(基于fsockopen与curl)
  8. dtc mysql_DTCC归来-高可用可扩展数据库架构探讨
  9. Java Break和continue实现goto功能
  10. tag 和branch的区别