版本 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
参数设置为true
时set_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。