摘要: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