CakePHP 3.1.5 发布

CakePHP 核心团队很高兴宣布 CakePHP 3.1.5 立即发布。这是 3.1 分支的维护版本,修复了社区报告的几个问题。

错误修复

您可以在 3.1.5 中看到以下更改。请参阅 变更日志 了解每次提交的内容。

  • Collection::toArray() 现在在处理 RecursiveIterator 时会丢弃键。这使集合功能更容易理解,因为它们通常会按照人们的预期执行。
  • 改进了 API 文档。
  • ResultSet::isEmpty() 不会再在尚未迭代的缓冲迭代器上消耗记录。
  • ORM 不会再在使用子查询策略并使用 ORDER BY 子句时发出无效查询。ORDER BY 子句中使用的字段也会包含在选定字段中。
  • 错误处理现在与 PHP7 兼容。这消除了与 PHP7 的最后一个已知兼容性错误。
  • BelongsToMany 关联现在正确地使用 bindingKey
  • 整数封送处理现在正确地接受负值。
  • 执行 Shell 的 ‘main’ 方法时,当前命令名称被设置为 ‘main’。
  • spellcheck 现在是一个标准属性。与大多数 HTML5 属性不同,spellcheck 需要 ‘true’ 和 ‘false’ 值,这意味着它不能是缩写属性。
  • CSRF 验证应用于所有不是 ‘GET’、‘OPTIONS’ 或 ‘HEAD’ 的 HTTP 方法。这防止无效的 HTTP 方法绕过 CSRF 验证。
  • RouterBuilder::resources() 在使用 'inflect' => 'dasherize' 和嵌套资源时会正确地屈折对象 ID。
  • TimeHelper::format() 不会再在格式化之前将字符串日期时间移到提供的时区。
  • Shell::createFile() 不会再在 Windows 上运行时将 \n 默默地转换为 \r\n

次要增强功能

  • RouteBuilder::addExtension() 已添加。此方法允许您逐步添加扩展,而不是替换连接的扩展。
  • 传递给 Table::save()HasMany/BelongsToMany 链接/取消链接/替换方法的选项将传递给内部 Table::save/delete() 调用。
  • CsrfComponent 现在支持 httpOnly 选项。启用此选项将使 CSRF Cookie 无法被客户端脚本访问。

与往常一样,要感谢所有帮助完成此版本的社区成员,感谢他们报告问题并发送拉取请求。

github 上下载打包版本