17611538698
info@21cto.com

CakePHP 系列版本更新重磅发布,5.3.0 携多项新特性登场

动态 0 30 11小时前

近日,CakePHP 核心团队正式发布了多个版本更新,其中备受关注的 CakePHP 5.3.0 版本如期而至,同时 5.2 系列及 4.6.3 版本也迎来了维护性更新,为开发者带来了丰富的功能升级与问题修复。

CakePHP 5.3.0:功能革新与生态完善


作为本次更新的核心版本,CakePHP 5.3.0 不仅终结了 5.2 版本的错误修复支持(5.1 和 5.2 版本将持续获得安全更新至 5.4.0 或 6.0.0 版本发布),还终止了 4.x 系列的错误修复支持(核心团队将在 2026 年全年为 CakePHP 提供安全更新),更带来了诸多突破性特性:


核心功能升级


  1. 缓存与存储优化RedisEngine 新增 Redis 集群支持,通过配置 cluster 选项并传入服务器地址数组即可启用集群模式;缓存包新增多个事件,方便开发者监控缓存行为。
  2. 命令行工具增强cake plugin assets symlink 命令新增 --relative 选项,支持创建相对路径符号链接,适用于容器卷挂载场景;cake server 命令新增 --frankenphp 选项,可通过 FrankenPHP 启动开发服务器;version 命令新增详细模式输出,命令缺失时的错误提示也得到优化。
  3. 开发效率提升:新增控制台 TreeHelper,可将数组(如文件系统目录数组)以树形结构输出;控制台帮助输出支持命令分组;新增 Http\RedirectTrait,简化应用和插件中重定向响应的构建;命令可通过实现 CommandHiddenInterface 标记接口隐藏于命令列表中。
  4. 依赖注入与数据处理#[Configure] 属性新增依赖注入容器支持,可从 Configure 注入数据;TableContainer 代理支持将 ORM 表注入服务;新增 DateTimePeriod 类,包装 PHP DatePeriod 并在迭代时返回 DateTime 实例;SelectQuery::projectAs() 方法支持将查询结果投影到轻量级数据传输对象(DTO),实现只读数据访问。
  5. 数据库与查询能力强化:新增 MySQL 和 Postgres 数据库的额外列类型支持,使 CakePHP 的数据库类型支持接近 phinx;查询可定义引擎特定优化的优化器提示;新增 yearinetcidrmacaddr 等数据库类型;Query::optimizerHint() 方法支持接收引擎特定的优化器提示。
  6. 限流与安全保障:新增 RateLimitMiddleware 中间件,提供可配置的限流功能,支持多种识别策略(IP、用户、路由、API 密钥)、不同限流算法(滑动窗口、固定窗口、令牌桶),以及自定义标识符、请求成本、动态限制等高级特性。
  7. 分页与排序增强:分页操作的 sortableFields 数据新增流畅构建器,支持为虚拟字段和真实字段定义复杂排序,包含多列排序和固定排序支持;新增 SortField 类,可自定义默认排序方向和锁定方向(如 SortField::desc('created', locked: true));URL 支持组合排序键(如 ?sort=title-asc)。
  8. 测试与兼容性优化:集成测试中新增重定向响应相关断言,如 assertRedirectBack()assertRedirectBackToReferer()HtmlHelper::scriptStart()scriptEnd() 支持为内联 JavaScript 包裹 标签,适配编辑器语法高亮;最低 PHP 版本要求更新至 8.2.0。


候选版本迭代


在正式版发布前,CakePHP 5.3.0 经历了两轮候选版本更新:

  • RC1:奠定核心新特性基础,包括 Redis 集群支持、依赖注入增强、数据库类型扩展等。
  • RC2:新增 ExistsInNullable 规则类,优化限流中间件,修复 PaginatorHelper::limitControl()maxLimit 限制问题、数据库模式中的类型映射缺失等问题,同时弃用了以 Plugin 为类名的插件类加载方式。


维护版本更新:稳定性与兼容性提升

除了 5.3.0 重大更新外,核心团队还发布了多个维护版本,聚焦问题修复与兼容性优化:


CakePHP 5.2.6 - 5.2.11


该系列版本均为 5.2 分支的维护更新,主要修复内容包括:

修复命令补全、日期时区处理、表单错误获取、查询绑定等功能的已知问题;

改进类型注解与 API 文档,提升开发工具支持度;

解决 PHP 8.5 相关弃用警告,增强版本兼容性;

修复查询构建器中的潜在安全问题,避免已执行子查询的绑定参数值被覆盖;

优化 DI 组件集成、路由生成、嵌套关联加载等场景的稳定性。


CakePHP 4.6.3


作为 4.x 系列的维护版本,该更新主要修复了 PHP 8.4 和 8.5 的弃用警告、子查询执行相关问题、查询绑定的 dirty 标志设置问题,同时反向移植了 Cell 动作事件,标准化了 IntegrationTestTrait::assertRedirect() 中的 URL 处理。


贡献者致谢

此次系列版本更新离不开全球开发者社区的支持。众多贡献者通过提交代码、报告问题、完善文档等方式助力版本迭代,其中包括 ADmad、Mark Story、Corey Taylor、Marcelo Rocha 等核心贡献者,以及来自世界各地的社区成员。特别值得一提的是,josbeir 正式加入 CakePHP 团队,负责文档的更新优化,新文档预览可访问 newbook.cakephp.org


升级建议

核心团队建议开发者在升级前查阅官方迁移指南,了解版本间的行为变更。如需体验 5.3.0 版本的新特性,可通过官方渠道获取安装包;对于仍在使用 5.2 或 4.x 系列的用户,建议及时更新至最新维护版本,以获得更好的稳定性和安全性支持。


评论

我要赞赏作者

请扫描二维码,使用微信支付哦。

分享到微信