版本 4.0.4

发布日期:2020 年 7 月 15 日

CodeIgniter4 4.0.4 版发布

不兼容变更

  • FilterInterface 中为 after()before() 添加了 $arguments 参数。这是一个不兼容的变更,所以所有实现 FilterInterface 的代码都必须更新。

增强功能

  • SQLite3 数据库的位置已更改,默认现在将位于 writable 文件夹中,而不是 public 文件夹中。

  • 新增 CLI 命令:cache:clear 将销毁当前缓存引擎中的所有数据。

  • 感谢 samsonasik,我们有几个库被提升到了 100% 的测试覆盖率。

  • 一些小的性能提升。每一点提升都很重要!

  • getFieldData() 在数据库结果类中现在会返回列类型和长度。

  • 默认 .htaccess 文件已更新,可对扩展字符工作得更好。

  • 新增测试功能:Fabricator 可以简化在测试中创建模拟类的过程。

  • Model 类现在可以在运行时覆盖回调函数。对测试很有用。

  • 功能测试 在整体上有许多改进。

  • 新增 command() 辅助函数 以通过编程方式运行 CLI 命令。对测试和计划任务很有用。

  • 新增命令 make:seeder 以生成 数据库 Seed 类 骨架文件。

  • Windows 中现在可以在 CLI 使用颜色,以及其他与 Windows 相关的 CLI 改进。

  • 新增辅助函数 mb_url_title(),功能与 url_title() 相同,但会自动转义扩展的 URL 字符。

  • 图像类库 现在支持 webp 图像。

  • 在路由器中为正则表达式添加了 Unicode 支持。

  • delete_files() 辅助函数添加了删除隐藏文件夹的支持。

  • fetchGlobal() 在请求类中现在支持对数组数据应用过滤器,而不仅仅是第一个项目。

  • file 验证现在支持文件数组。

  • URI 类现在支持 setSilent() 方法,可禁用抛出异常。

  • 新增参数到 URI::getSegment(),允许我们改变如果什么都不存在时的默认返回值。

  • 在图像中实现 withResource(),以便可以使用方法链调用代替提供的 getResource()(在测试中使用)。只需压缩图像。

  • 重定向时,现在可以从全局响应对象复制 Cookie 和 header,使用新的 withCookies()withHeaders() 方法。

  • 支持在 加密类 中使用 $key 参数或 .env 文件中使用特殊前缀 “hex2bin:”。

修复的 Bug

  • 修复了 SQLite3 数据库的位置,默认现在将位于 writable 文件夹中,而不是 public 文件夹中。

  • 修复了 force_https() 可能会添加第二次 https:// 的bug。

  • 修复了 CurlRequest 中可能导致不正确的 “100 Continue” 头的bug。

  • 修复了当 $target 参数为 null 时 Image::save() 的bug。

  • 修复了当 $default 参数设置为 trueset_checkbox()set_radio() 的问题。

  • 修复了 Model 类中结果对象处理的问题。

  • 修复了 SQLite 数据库中的转义字符。

  • 修复了在主键为 null 时在 Postgres 和实体上的插入问题。

  • CLI 脚本现在可以正确识别参数中的破折号。

  • CURLRequest 现在使用多部分数据正确设置内容长度。

  • ImageMagick 处理程序的稳定性各种改进。

  • 在配置文件中设置验证错误现在应该可以工作。

  • 从实体保存 JSON 时不再转义 Unicode 字符。

  • 重定向现在应该可以使用自定义 HTTP 代码正常工作。

  • Time::setTimezone() 现在可以正确工作。

  • 为 Postgres 添加了完全外连接支持。

  • 填充过程中,实体中的一些转换项(如数组、json)没有被正确设置。

  • 修复了在某些情况下,GD 处理程序会尝试两次压缩图像的 bug。

  • 确保翻译输出逻辑可用于所选语言环境、破折号语言环境和回退的 “en”。

  • 修复通过 API 在 PostgreSQL 上通过 POST/PUT 调用的 is_unique/is_not_unique 验证。

  • 修复了 after() 中没有传递过滤器参数的bug。

有关完整的已修复 bug 列表,请参阅代码库的 CHANGELOG_4.0.md