CakePHP 3.1.2 发布
CakePHP 核心团队很高兴宣布 CakePHP 3.1.2 的发布。这是 3.1 分支的维护版本,修复了 bug 并包含了一些小的改进。
错误修复
您可以在 3.1.2 中看到以下更改。请查看 [变更日志](https://cakephp.com.cn/changelogs/3.1.2) 以获取每个提交的详细信息。
- 包含的关联现在将列类型数据添加到查询中。这意味着您可以在关联列的条件中使用诸如 DateTime 对象之类的复杂数据类型。
- 通过 RequestHandlerComponent 转换为 requestAction 调用的包含查询字符串的 XHR 请求现在可以按预期工作。
- Hash::extract() 对 ArrayAccess 对象的兼容性已得到改进。
- 查询中的 case 表达式不再错误处理 “0”。
- debug() 不再省略 “schema” 和 “prefix”。
- Validation::datetime() 现在接受日期和时间分量之间的 “,”。这使得验证 en_US 格式的日期更容易。
- ProgressHelper 中的渲染问题已得到修复。
- Query 对象上的 clone 现在将创建一个深层克隆,正如预期的那样。
- 更正了 API 文档。
增强功能
- HasMany 关联现在支持 “replace” 保存模式。在此模式下,实体当前属性中不存在的现有关联将被删除。新的记录也将被插入。
- IntegrationTestCase 现在提供了 enableCsrfToken() 和 enableSecurityToken() 方法,使使用 CsrfComponent 和 SecurityComponent 进行测试变得更加简单。
- CSRF 令牌 POST 字段现在在验证后从请求数据中删除。这使得 “Post Redirect Get” 工作流更加简单,因为不需要手动删除 CSRF 令牌。
- NetworkSocket 现在通过添加前缀支持所有标准 SSL 上下文选项。例如 ssl_verify_peer。这些选项也可以在 SmtpTransport 中配置。
- 测试 Fixture 约束管理已得到极大改进。您不再需要仔细排序 Fixture 以确保正确应用约束。相反,约束是在创建所有表和记录之后创建的。
- 在为 SQL 语句准备数据类型时,现在将在无效值上引发异常,而不是静默失败。
感谢社区成员通过报告问题和发送拉取请求帮助我们发布这个版本。
下载 [GitHub 上的打包版本](https://github.com/cakephp/cakephp/releases).