ThinkPHP5.0版本是一个颠覆和重构版本,官方团队历时十月,倾注了大量的时间和精力,采用全新的架构思想,引入了更多的PHP新特性,优化了核心,减少了依赖,实现了真正的惰性加载,支持composer,并针对API开发做了大量的优化,包括路由、日志、异常、模型、数据库、模板引擎和验证等模块都已经重构,不适合原有3.2项目的升级,请慎重考虑商业项目升级,但绝对是新项目的首选(无论是WEB还是API开发)。

ThinkPHP V5.0——为API开发而设计的高性能框架

[ 特性 ]

主要特性包括:
--------------------------------------------------------------
规范:遵循PSR-2、PSR-4规范,Composer及单元测试支持;
严谨:异常严谨的错误检测和安全机制,详细的日志信息,为你的开发保驾护航;
灵活:减少核心依赖,扩展更灵活、方便,支持命令行指令扩展;
API友好:出色的性能和REST支持、远程调试,更好的支持API开发;
高效:惰性加载,及路由、配置和自动加载的缓存机制;
ORM:重构的数据库、模型及关联,MongoDb支持;
--------------------------------------------------------------

支持ThinkPHP5的用户请到 Github 给我们一个`star` ^_^

相对于RC4版本,更新如下:

[ 请求和路由 ]

Request对象支持动态绑定属性
定义了路由规则的URL原地址禁止访问
改进路由规则存储结构
路由分组功能增强,支持嵌套和虚拟分组
路由URL高效反解
改进Request对象param方法获取优先级
路由增加name方法设置和获取路由标识
增加MISS和AUTO路由规则
Route类增加auto方法 支持注册一个自动解析URL的路由
路由规则支持模型绑定
路由变量统一使用param方法获取
路由规则标识功能和自动标识
增加生成路由缓存指令 optimize:route
Request对象增加route方法单独获取路由变量
Request对象的param get post put request delete server cookie env方法的第一个参数传入false 则表示获取原始数据 不进行过滤
改进自动路由标识生成 支持不同的路由规则 指向同一个路由标识,改进Url自动生成对路由标识的支持
改进Request类 filter属性的初始化
改进Request类的isAjax和isPjax方法
Request类增加token方法
路由配置文件支持多个 使用 route_config_file 配置参数配置
域名绑定支持https检测
改进域名绑定 支持同时绑定模块和其他 支持绑定到数组定义的路由规则,取消域名绑定到分组
路由规则增加PATCH请求类型支持
增加route_complete_match配置参数设置全局路由规则定义是否采用完整匹配 可以由路由规则的参数complete_match 进行覆盖
改进路由的 后缀参数识别 优先于系统的伪静态后缀参数
Url类增加root方法用于指定当前root地址(不含域名)
改进Url生成对可选参数的支持

[ 数据库 ]

查询条件自动参数绑定
改进分页方法支持参数绑定
Query类的cache方法增加缓存标签参数
Query类的update和delete方法支持调用cache方法 会自动清除指定key的缓存 配合查询方法的cache方法一起使用 
改进Query类的延迟写入方法
Query类的column和value方法支持fetchsql
改进日期查询方法
改进存储过程方法exec的支持
改进Connection类的getLastInsID方法获取
记录数据库的连接日志(连接时间和DSN)
改进Query类的select方法的返回结果集判断 
Connection类增加getNumRows方法
数据库事务方法取消返回值
改进Query类的chunk方法对主键的获取
改进当数据库驱动类型使用完整命名空间的时候 Query类的builder方法的问题

[ 模型 ]

增加软删除功能
关联模型和预载入改进
关联预载入查询闭包支持更多的连贯操作
完善savell方法支持更新和验证
关联定义统一返回Relation类
Model类的has和hasWhere方法对join类型的支持
Model类的data方法 批量赋值数据的时候 清空原始数据
Model类的get方法第三个参数传入true的时候会自动更新缓存
Model类增加只读字段支持
Model类增加useGlobalScope方法设置是否启用全局查询范围
Model类的base方法改为静态定义 全局多次调用有效
Model类支持设定主键、字段信息和字段类型,不依赖自动获取,提高性能
Model类的data方法 支持修改器
改进Relation类对非数字类型主键的支持
改进Relation类的一对多删除
修正Relation类的一对多关联预载入查询

[ 日志和缓存 ]

支持日志类型分离存储
日志允许设置记录级别
增加缓存标签功能
缓存类增加pull方法用于获取并删除
cache助手函数增加tag参数
简化日志信息,隐藏数据库密码
增加cache/session redis驱动的库选择逻辑;
memcached驱动的配置参数支持option参数
调试模式下面 日志记录增加页面的header和param参数记录
memcached缓存驱动增加连接账号密码参数
缓存支持设置complex类型 支持配置多种缓存并用store切换
缓存类增加tag方法 用于缓存标签设置 clear方法支持清除某个缓存标签的数据
File类型日志驱动支持设置单独文件记录不同的日志级别
改进文件缓存和日志的存储文件名命名规范
缓存类增加inc和dec方法 针对数值型数据提供自增和自减操作
Cache类增加has方法 get方法支持默认值

[ 其它 ]

视图类支持设置模板引擎参数
增加表单令牌生成和验证
增加中文验证规则
增加image和文件相关验证规则
重定向Response对象支持with方法隐含传参
改进Session类自动初始化
session类增加pull方法用于获取并删除
增加Env类用于获取环境变量
Request类get/post/put等更改赋值后param方法依然有效
改进Jump跳转地址支持Url::build 解析
优化Hook类
应用调试模式和页面trace支持环境变量设置
config助手函数支持 config('?name') 用法
支持使用BIND_MODULE常量的方式绑定模块
入口文件自动绑定模块功能
改进验证异常类的错误信息和模板输出,支持批量验证的错误信息抛出
完善console 增加output一些常用的方法
增加token助手函数 用于在页面快速显示令牌
增加halt方法用于变量调试并中断输出
改进Validate类的number验证规则 和 integer区分开
optimize:autoload增加对extend扩展目录的扫描
改进Validate类的boolean验证规则 支持表单数据
改进cookie助手函数支持 判断是否存在某个cookie值
改进abort助手函数 支持抛出HttpResponseException异常
改进File类增加对上传错误的处理
改进File类move方法的返回对象增加上传表单信息,增加获取文件散列值的方法
改进File类的move方法的返回对象改为返回File对象实例
增加clear和optimize:config 指令
改进File类和Validate类的图像文件类型验证
控制器的操作方法支持注入Request之外的对象实例
Request类 param(true) 支持获取带文件的数据
input助手函数第一个参数增加默认值
Validate类增加image验证规则 并改进max min length支持多种数据类型
json输出时数据编码失败后抛出异常

[ 调整 ]

废除路由映射(静态路由)定义
取消url_deny_suffix配置 改由路由的deny_ext参数设置
模型save方法返回值改为影响的记录数,取消getId参数
Request对象controller方法返回驼峰控制器名
控制器前置操作方法不存在则抛出异常
Loader类db方法增加name标识参数
db助手函数增加第三个参数用于指定连接标识
Sqlsrv驱动默认不对数据表字段进行小写转换
移除sae驱动 改为扩展包
Oracle驱动移出核心包
Firebird驱动移出核心包
取消别名定义文件alias.php
配置参数读取的时候取消环境变量判断 需要读取环境变量的时候使用Env类
环境变量定义文件更改为 .env 由原来的PHP数组改为ini格式定义(支持数组方式)
状态配置和扩展配置的加载顺序调整 便于状态配置文件中可以更改扩展配置的参数
取消域名绑定到路由分组功能
控制器类的success和error方法url参数支持传入空字符串,则不做任何处理
控制器的error success result redirect方法均不需要使用return
创建目录的权限修改为0644

[ 文档 ]

5.0完全开发手册5.0快速入门

[ 下载地址 ]

官网:http://www.thinkphp.cn/down/845.html
GitHub: https://github.com/top-think/think.git (主要维护仓库 官方核心团队)
Composer: composer create-project topthink/think tp5 --prefer-dist

[ 扩展包 ]

下面是针对ThinkPHP5的扩展包 需要使用Composer安装
应用单元测试:https://github.com/top-think/think-testing.git
验证码:https://github.com/top-think/think-captcha.git
队列:https://github.com/top-think/think-queue.git
MongoDb支持:https://github.com/top-think/think-mongo.git
angular模板引擎:https://github.com/top-think/think-angular.git
助手库:https://github.com/top-think/think-helper.git
数据库迁移工具:https://github.com/top-think/think-migration.git

ThinkPHP V5.0 正式版发布的更多相关文章

  1. Redis 3.0正式版发布,正式支持Redis集群

    Redis是一个开源.基于C语言.基于内存亦可持久化的高性能NoSQL数据库,同时,它还提供了多种语言的API.近日,Redis 3.0在经过6个RC版本后,其正式版终于发布了.Redis 3.0的最 ...

  2. Appium路线图及1.0正式版发布

    Appium更新的速度极快,从我试用时候的0.12到1.0(0.18版本后就是1.0),完全符合移动互联网的节奏. 更新可能会慢,可以多试几次 整理了testerhome上思寒发表的帖子,让我们来看下 ...

  3. RestServer 2.0 正式版发布

    RestServer 2.0 正式版发布 使用许可&版权说明 在保持本软件完整的情况下可以将本软件用于任何商业用途. 本软件可以自由传播,但是请保持软件相关文件和说明文档完整. 未经许可不得将 ...

  4. React Suite v3.0 正式版发布

    React Suite v3.0 正式版发布 相信很多人会好奇,React Suite 是什么? React Suite 是 HYPERS 前端团队和 UX 团队开源的一套基于 React 的 UI ...

  5. Xcode 7.0正式版发布了

    Xcode 7.0正式版发布了     下载地址:链接: http://pan.baidu.com/s/1FNkPS 密码: ee42     本文由大学霸整理,转载请注明出处,尊重IT人!

  6. RapidJSON 1.0 正式版发布,C++的JSON开发包

    分享 <关于我> 分享  [中文纪录片]互联网时代                 http://pan.baidu.com/s/1qWkJfcS 分享 <HTML开发MacOSAp ...

  7. .NET Core 3.0正式版发布

    是的,.NET Core 3.0正式版发布了,令人兴奋. WPF 其实,.NET Core 2.1开始已经是个很完善的版本,3.0又带来了什么呢?我站在我的使用角度来看,最最令人振奋的就是:能用WPF ...

  8. Python 3.8.0 正式版发布,新特性初体验 全面介绍

    Python 3.8.0 正式版发布,新特性初体验 北京时间 10 月 15 日,Python 官方发布了 3.8.0 正式版,该版本较 3.7 版本再次带来了多个非常实用的新特性. 赋值表达式 PE ...

  9. Nest.js 6.0.0 正式版发布,基于 TypeScript 的 Node.js 框架

    开发四年只会写业务代码,分布式高并发都不会还做程序员?   Nest.js 6.0.0 正式版发布了.Nest 是构建高效.可扩展的 Node.js Web 应用程序的框架.它使用现代的 JavaSc ...

随机推荐

  1. 几种简单的排序算法(JAVA)

    几种排序算法(JAVA) 一.代码 package com.hdwang; import java.util.Arrays; /** * Created by admin on 2017/1/20. ...

  2. 【洛谷P1471】方差

    题目大意:维护一个有 N 个元素的序列,支持以下操作:区间加,区间询问均值,区间询问方差. 题解:可知区间均值和区间和有关,即:维护区间和就等于维护了区间均值.区间方差表达式为 \(\frac{\Si ...

  3. 项目实战SportsStore——订单处理模块

    前面的步骤如果顺利完成,你的网站运行之后应该能够正常显示下面三个页面: 1.产品列表 2.购物车内容页面 在某个商品后面点击“添加到购物车”则出现下图页面: 此页面上点击“继续购物”按钮则返回到产品列 ...

  4. C#利用Zxing.net生成条形码和二维码并实现打印的功能

        开篇:zxing.net是.net平台下编解条形码和二维码的工具. 下载地址:http://pan.baidu.com/s/1kTr3Vuf Step1:使用VS2010新建一个窗体程序项目: ...

  5. 函数和常用模块【day06】:logging模块(八)

    本节内容 1.简述 2.简单用法 3.复杂日志输出 4.handler详解 5.控制台和文件日志共同输出 一.简述 很多程序都有记录日志的需求,并且日志中包含的信息即有正常的程序访问日志,还可能有错误 ...

  6. Nested Loops(嵌套循环)

    先扫描驱动表的(外表),外表的每一行驱动内表,然后匹配,所以nest loops不是主要依赖于内表有多少行,而是非常依赖于驱动表到底有多少行参与nested loops,因为驱动表(或者准确的说是驱动 ...

  7. [六字真言]2.嘛.异常定制和通用.md

    幻世当空 恩怨休怀 舍悟离迷 六尘不改 且怒且悲且狂哉! 最近一直在循环的一首歌! 丰富自己,比取悦他人更有力量.种下梧桐树,引得凤凰来.你若盛开,蝴蝶自来! 言归正传! 言归正传! 不要去大包大揽 ...

  8. C#的Lamda表达式_匿名函数

  9. 命令行IRC

    安装客户端irffs sudo apt-get install irssi 登陆服务器 irssi -c irc.freenode.net 设置昵称 /nick <name> 注册或登陆 ...

  10. str和unicode类

    在py2中,分为两类,str和unicode 而在py3中,分为两类,byte和str py2中的str等同于py3中的byte 首先明确一点,我们编辑好一段文本,python并不知道我们的文本是以什 ...