版本 4.1.5

发布日期:2021 年 11 月 8 日

CodeIgniter 4.1.5 版发布

不兼容变更

  • 修复了 CSRF 保护上的一个错误。现在,当应用 CSRF 过滤器时,CSRF 保护也适用于 PUT/PATCH/DELETE 请求。如果使用这些请求,则需要发送 CSRF token。

  • 在以前的版本中,如果你没有提供自己的 headers, CURLRequest 会由于一个错误而发送来自浏览器的请求头。从本版本开始,它不再发送它们。

  • 修复了 BaseBuilder::insertBatch()testMode 下的返回值。现在它返回 SQL 字符串数组而不是受影响的行数。此更改是为了与批处理方法的返回类型保持兼容。现在 BaseBuilder::insertBatch() 的返回数据类型与 updateBatch() 方法相同。

  • BaseBuilder::insertBatch()BaseBuilder::updateBatch() 方法中数据处理方式进行了重大优化。这减少了内存使用量和更快的查询处理速度。作为权衡, $query->getOriginalQuery() 方法生成的结果发生了变化。它不再返回带有绑定参数的查询,而是实际运行的查询。

增强功能

  • 为保留字符添加了缓存配置

  • Forge 类的 addForeignKey() 函数现在可以在数组中定义复合外键

  • Forge 类的 dropKey 函数可以移除键

  • 现在环境变量中可以使用 _ 作为分隔符。参见 命名空间分隔符

  • 为路由添加了多个过滤器和类名过滤器

  • 减少了 insertBatch()updateBatch() 的内存使用量

  • 添加了 基于会话的 CSRF 保护

  • Validation 添加了 valid_url_strict 规则

  • 调试工具栏
    • 在时间线中添加了格式化的查询字符串

    • 改进了查询字符串的关键字高亮和转义

变更

  • 始终在 BaseBuildersetsetUpdateBatchinsertBatch 函数中转义标识符。

弃用功能

  • 弃用 CodeIgniter\\Cache\\Handlers\\BaseHandler::RESERVED_CHARACTERS,改用新的配置属性

错误修复

有关完整的错误修复列表,请参阅仓库的 CHANGELOG_4.1.md