达内广州C++学院|c++培训|广州达内科技C++/C#培训|.NET培训|IT培训|达内广州岗顶中心 达内广州C++学院|c++培训|广州达内科技C++/C#培训|.NET培训|IT培训|达内广州岗顶中心
PHP互联网工程师
 当前位置:主页 > 高端课程 > PHP互联网工程师 >

ThinkPHP6.0今天正式发布

时间:2019-10-30  来源:未知  作者:广州达内培训

2019 年 10 月 24 日 发布

官方历时一年多倾力打造的ThinkPHP6.0版本正式发布,该版本基于精简核心和统一用法两大原则在5.1的基础上对底层架构做了进一步的优化改进,并更加规范化。

由于引入了一些新特性,ThinkPHP6.0运行环境要求PHP7.1+(推荐PHP7.3+),不支持5.1的无缝升级(官方提供了升级指导)。

推荐视频教程:《ThinkPHP6.0极速入门》

主要特性:

● 采用PHP7强类型(严格模式)

● 支持更多的PSR规范

● 多应用支持

● ORM组件独立

● 改进的中间件机制

● 核心架构服务化

● 全新的事件系统

● 容器功能增强

● 模板引擎组件独立

● 内部功能中间件化

● SESSION机制改进

● 缓存及日志支持多通道

● 引入Filesystem组件

● 对Swoole以及协程支持改进

● 对IDE更加友好

● 统一和精简大量用法

强类型及严格模式

在主流框架里面,ThinkPHP6.0是最先采用PHP7严格模式的。所有的核心文件都是开启了严格模式的类型约束,因此有任何的变量类型不符的情况都会抛出异常,有利于规范代码中的变量类型和提前发现问题隐患。

多应用模式

新版框架提供了多应用模式支持,默认安装为单应用,你只需要安装一个多应用模式扩展就可以更轻松的部署多个应用而不需要重复安装依赖组件,每个应用都支持独立入口访问以及域名绑定,也可以使用一个入口文件实现自动多应用部署。并且自动多应用模式支持智能识别,对于不存在的应用访问会自动切换到单应用模式进行匹配。同时支持应用的映射和禁止访问机制。

多应用模式的设计可以让开发更加模块化,因为每个应用的配置、路由及视图都可以纳入应用目录,所以更方便应用的模块化,甚至引入composer应用。

容器和服务

新版的容器支持PSR-11规范,容器类的功能特性主要包括:

● 绑定类、对象实例、接口到容器

● 创建类的实例(存在则直接获取)

● 容器对象绑定别名

● 支持容器对象(实例化)回调

● 获取容器对象实例

● 删除容器中的对象实例

● 提供依赖注入和门面实现支持

● 调用容器对象实例的方法(或者闭包)

● 提供容器对象的ArrayAccess支持

事件系统

新版的事件系统可以看成是5.1版本行为系统的升级版,事件系统相比行为系统强大的地方在于事件本身可以是一个类,并且可以更好的支持事件订阅者。支持事件智能订阅,通过反射机制来识别当前订阅者要订阅的事件。

事件相比较中间件的优势是事件比中间件更加精准定位(或者说粒度更细),并且更适合一些业务场景的扩展。例如,我们通常会遇到用户注册或者登录后需要做一系列操作,通过事件系统可以做到不侵入原有代码完成登录的操作扩展,降低系统的耦合性的同时,也降低了BUG的可能性。

中间件支持完善

中间件分为全局中间件、应用中间件、路由中间件和控制器中间件,这四个中间件分组完全独立执行,但同一个分组内的中间件不会重复执行。中间件方法执行依赖注入,以及请求结束的回调机制。

核心很多功能都是基于中间件来完成,包括多应用模式也是采用中间件机制执行。

路由和请求

新版的路由精简了很多不必要的功能,路由定义也更加规范化和语义化,并且路由定义文件支持纳入应用目录,便于模块化开发。路由注解功能独立为think-annotation库,并且使用更加规范,支持IDE提示。

新版的请求对象更易扩展,系统默认安装后提供了一个app\Request类,你可以在应用中直接自定义请求对象,增加必要的属性和方法。但不会影响对think\Request的依赖注入和门面调用。

系统服务

由于核心框架采用了服务化设计,你可以在你的扩展或者应用中注册需要的服务。在系统服务中注册一个对象到容器,或者对某些对象进行相关的依赖注入。由于系统服务的执行优先级问题,可以确保相关组件在执行的时候已经完成相关依赖注入。一个服务类通常包括注册(register)和启动(boot)方法,用于不同阶段的执行。

ORM组件化

内置的ORM功能已经完全独立为think-orm组件,可以独立使用,ThinkPHP6.0默认依赖安装了该组件,保持用法不变的同时,增强了查询功能。

模板引擎组件化

核心不再内置任何模板引擎,仅提供PHP模板支持,官方的模板引擎已经独立为think-template模板引擎,并默认依赖安装。你可以更方便的使用第三方模板引擎。

日志系统

日志支持多通道、并统一命令行和WEB日志格式,主要包括:

● 日志增加多通道支持,可以同时或者切换写入多个通道

● WEB和CLI的日志记录格式统一,并支持日志格式化

● 对JSON日志格式的改进

● 支持日志写入事件

Session机制改进

6.0版本的Session机制完全重写了,并且不再使用PHP内置的Session机制,全新实现一套Session机制,可以更好的支持Swoole/Workerman等环境。

所以不再支持PHP内置的session_*** 系列函数,也不再支持使用$_SESSION读取session数据,你必须通过框架提供的Session类或者门面来操作,Request类也封装了Session数据的读取。

Session支持跨应用读取和自定义序列化机制,默认采用文件类型记录Session数据,由于共用了缓存机制,你还可以使用任何支持的缓存类型来记录Session数据。

引入Filesystem组件

新版增加了Filesystem类库对文件系统强化了支持,而且可以很方便的支持各种云存储,包括阿里云和七牛云。

Swoole扩展改进

Swoole扩展同时支持HTTP和Socket服务,支持数据库和缓存的连接池功能,以及RPC功能。

调试工具更新

原来内置的页面Trace调试工具已经更改为扩展的方式,改成安装think-trace扩展,如果通过composer安装应用的话,默认会安装topthink/think-trace扩展。

基本用法和之前保持不变,但无需额外配置,默认使用html方式显示,同时仍然支持浏览器控制台显示,并仅在调试模式下有效。

同时增加了一个基于debugbar的调试扩展think-debugbar,需要单独安装后才能使用。

composer require topthink/think-debugbar

统一和精简大量用法

新版对很多用法进行了精简和统一,尽可能避免在开发过程中规范不一的困惑。

开发手册

更多内容可以查看ThinkPHP6.0的《TP6完全开发手册》

抱着一份初心和坚持,ThinkPHP始终坚持完善和更新,十三年来持续发布了多个大版本。其实ThinkPHP历史以来的大版本都提供了超过年18个月的支持和维护,目前ThinkPHP主要版本的维护计划公告如下:

f602e49b4f8f26b10680e8d83d46d7c.png

ThinkPHP6.0 GitHub地址:

https://github.com/top-think/think?tdsourcetag=s_pctim_aiomsg

https://github.com/top-think/framework?tdsourcetag=s_pctim_aiomsg


上一篇:预警!!!PHP 远程代码执行漏洞
下一篇:2019年最新最全面的CMS开发视频教程(收藏)

友情链接:
  • 全球最大晶圆代工半导体制造厂,台积电斥资订购艾斯摩尔机器设备
  • 英特尔依然是那个英特尔,且看英特尔的城防体系
  • 支持双 DRAM 内存接口,慧荣企业级 SSD 主控方案披露
  • 在全球被反垄断罚款,冤!高通到底哪里得罪了欧盟?
  • 强强联合!万业、微电子所和芯鑫共同打造全新半导体设备
  • 复旦大学校长称:对于集成电路产业发展,大学应该主动担当
  • 技术再升级!无锡中科芯攻克晶圆级再布线及晶圆级凸点制备关键技
  • 聚力!万业企业设立集成电路装备集团,提供自主可控设备
  • 德州仪器C2000微控制器增强连通性和控制性
  • 英特尔打出降价策略,以免被竞争对手 AMD 打败?
  • 贸易摩擦的闹剧没有赢家,苹果有勇气离开中国吗?
  • 图像信号与视觉处理器的发展趋势
  • 真干快消品定位方案班(第二期)火热开班
  • Java集合 ArrayList原理及使用
  • TDD(测试驱动开发)死了吗?
  • JAVA基础之XML相关
  • javaweb项目搭建ehcache缓存系统
  • 每日一码——字符串统计
  • 一篇文章帮你彻底搞清楚“I/O多路复用”和“异步I/O”的前世今生
  • 九:模板方法模式
  • 十二:命令模式(人员解耦和)
  • Java 转PPT为图片、PDF、SVG、XPS、ODP以及PPT和PPTX互转
  • SpringCloud学习(SPRINGCLOUD微服务实战)一
  • 记一次微信网页授权后获取用户信息并重定向
  • 速途新营销五点实战洞察解码“品效合一”
  • 十一:外观模式详解(Service,action与dao)
  • 手把手教你学会 基于JWT的单点登录
  • mysql锁机制总结,以及优化建议
  • 解决多个版本jar包冲突【jar内包名重命名】
  • 中国首张5G终端电信设备进网许可证 华为Mate 20 X 5G版入网
  • RPC之Thrift
  • 高级Java工程师必备 ----
  • 天猫618期间实物支付GMV增长38.5%
  • 换季了,老板你的库存处理好了吗?
  • 从“618”大数据看中国消费新活力
  • 小米生态链:贵在格局感与收放度
  • CODING 2.0 企业级持续交付解决方案
  • 老铁奇趴“新京济” 快手*京东618战报出炉
  • 中小企业新媒体运营基本技能
  • 上汽大通房车再度携手LINE FRIENDS 魔都巡游顺利开启
  • 华为高端手机国内市场份额超苹果夺得榜首
  • 中国智能制造分析报告
  • iPlus艾加营销助力腾讯广告牵手吴晓波 推进商业IP变现
  • 2019世界新能源汽车大会7月1日将在海南举行
  • 区域酒企如何转型突围
  • 时时彩论坛
  • 五星体育斯诺克
  • 北单比分直播
  • 河北11选5走势图
  • 福建体彩36选7开奖结果
  • 九龙图库下载