摘要:ThinkPHP5.0版本是一个颠覆和重构版本,官方团队历时十月,倾注了大量的时间和精力,采用全新的架构思想,引入了更多的PHP新特性,优化了核心,减少了依赖,实现了真正的惰性加载,支持composer,并针对API开发做了 ...
摘要:ThinkPHP5.0版本是一个颠覆和重构版本,官方团队历时十月,倾注了大量的时间和精力,采用全新的架构思想,引入了更多的PHP新特性,优化了核心,减少了依赖,实现了真正的惰性加载,支持composer,并针对API开发做了 ...
ThinkPHP5.0版本是一个颠覆和重构版本,官方团队历时十月,倾注了大量的时间和精力,采用全新的架构思想,引入了更多的PHP新特性,优化了核心,减少了依赖,实现了真正的惰性加载,支持composer,并针对API开发做了大量的优化,包括路由、日志、异常、模型、数据库、模板引擎和验证等模块都已经重构,不适合原有3.2项目的升级,请慎重考虑商业项目升级,但绝对是新项目的首选(无论是web还是API开发)。
V5.0.4版本比5.0.3更稳定和规范,并增加了一些新的特性。
关联模型重构并增加多态一对多关联;
数据库支持一个字段多次调用不同查询条件;
增加数据库CURD事件支持;
路由到类和控制器的方法支持传入额外参数;
支持全局模板变量赋值;
模型支持独立设置查询数据集对象;
日志针对命令行及调试做出改进;
改进Hook类的行为方法调用;
从`V5.0.3`升级到`V5.0.4`需要注意如下事项:
模型的关联定义方法必须采用驼峰法(小写字母打头)命名规范,但关联调用可以支持驼峰和小写方式。
行为类的方法必须使用驼峰法命名,如果你使用了钩子位作为行为执行方法入口,请修改为驼峰法,例如 `app_init`钩子位对应的行为方法名应该是 `appInit`。
如果你使用了Query类的`fetchClass`方法自定义数据集返回对象的话,请改为在模型中设置`resultSetType`属性,数据库类不再支持自定义查询数据集对象(只支持数组和系统的`think\Collection`数据集对象)
请求缓存支持模块单独开启
Request类post方法支持获取json方式的请求数据
路由到类的方法和控制器方法 支持传入额外参数,用于方法的参数
改进控制器自动搜索的目录规范
改进请求缓存
改进自动参数绑定
修正路由的请求缓存设置
改进Route类name方法
增加数据库查询(CURD)事件
改进多表更新的字段不存在问题
改进Model类的useGlobalScope方法
修正子查询作为表名查询的问题
Model类增加resultSetType属性 用于指定模型查询的数据集对象(默认为空返回数组)
Model类增加toCollection方法(自动调用)
关联模型架构调整
改进预载入with方法的参数支持小写和下划线定义
修正关联多对多一处错误
改进关联多对多的查询
关联模型支持多态一对多关联
预载入关联查询支持关联对象属性绑定到当前模型
支持追加关联对象的属性到当前模型数据
一对一关联预载入支持JOIN和IN两种方式(默认为JOIN)
改进多对多查询
改进模型更新的数据变化比较规则
查询支持一个字段多次查询条件
改进sql日志的sql语句
修正join自身表的别名覆盖问题
模型类的connection属性和数据库默认配置合并
改进in和between查询条件的自动参数绑定
改进Query类对数据集对象以及关联字段排序的支持
增加模型的快捷事件方法
改进Query类的getTableInfo方法缓存读取
model类的saveAll方法支持调用allowField方法进行字段过滤
修正关联查询的时候 whereTime方法的bug
改进Query类的聚合查询
table方法支持字符串方式的子查询
修正count avg方法使用fetchsql无法正确返回sql的问题
改进命令行下的日志记录
部署模式下简化日志记录
增加debug日志类型 仅限调试模式记录
改进Template类parseTemplateFile方法
改进Validate类的getRuleMsg方法
控制器的error方法在AJAX请求默认返回url为空
Validate类架构方法增加field参数 用于设置验证字段的描述
改进App类invokeMethod方法对架构函数依赖注入的支持
增加RedirectResponse的restore方法返回值
View类增加share静态方法 用于静态赋值模板变量
验证类增加hasScene方法判断是否存在某个场景的验证配置
修正redis和session驱动的destroy方法返回值
空操作方法的参数传入去掉操作方法后缀
在控制器中调用request和view增加类型提示
改进input助手函数支持多维数据获取
Cache类增加pull和remember方法
改进验证类的confirm验证规则 支持自动规则识别
改进验证类的错误信息定义
增加Validate类自定义验证错误信息的替换规则
Cookie类增加forever方法用于永久保存
模板渲染支持从视图根目录读取模板
改进Hook类的exec方法
Db类查询不再支持设置自定义数据集对象
废除Query类的fetchClass方法
控制器的error方法在AJAX请求默认返回的url为空
关联方法定义不支持使用小写下划线,必须使用驼峰法
行为类的方法必须使用驼峰法命名
官方开发手册已经同步更新到V5.0.4版本
官网:
核心包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-image.git队列:
https://github.com/top-think/think-queue.gitMongoDb支持:
https://github.com/top-think/think-mongo.gitangular模板引擎:
https://github.com/top-think/think-angular.git助手库:
https://github.com/top-think/think-helper.git数据库迁移工具:
https://github.com/top-think/think-migration.gitWorkerman:
https://github.com/top-think/think-worker.git来源: http://www.phpchina.com/portal.php?mod=view&aid=40363