从 4.4.3 升级到 4.4.4
请参考与您的安装方法相对应的升级说明。
强制文件更改
错误文件
更新以下文件以显示正确的错误消息
app/Views/errors/cli/error_exception.php
app/Views/errors/html/error_exception.php
重大变更
使用点数组语法进行验证
如果您在验证规则中使用 点数组语法,则已修复一个错误,该错误会导致 *
在错误的维度上验证数据。
在以前的版本中,规则键 contacts.*.name
会错误地捕获任何级别的 contacts.*.name
、contacts.*.*.name
、contacts.*.*.*.name
等数据。
以下代码解释了详细信息
use Config\Services;
$validation = Services::validation();
$data = [
'contacts' => [
'name' => 'Joe Smith',
'just' => [
'friends' => [
['name' => 'SATO Taro'],
['name' => 'Li Ming'],
['name' => 'Heinz Müller'],
],
],
],
];
$validation->setRules(
['contacts.*.name' => 'required|max_length[8]']
);
$validation->run($data); // false
d($validation->getErrors());
/*
Before: Captured `contacts.*.*.*.name` incorrectly.
[
contacts.just.friends.0.name => "The contacts.*.name field cannot exceed 8 characters in length.",
contacts.just.friends.2.name => "The contacts.*.name field cannot exceed 8 characters in length.",
]
After: Captures no data for `contacts.*.name`.
[
contacts.*.name => string (38) "The contacts.*.name field is required.",
]
*/
如果您有依赖于该错误的代码,请修复规则键。
验证规则匹配和差异
由于在严格和传统规则中 matches
和 differs
验证非字符串类型的数据时修复了错误,如果您使用这些规则并验证非字符串数据,则验证结果可能会发生变化(已修复)。
请注意,传统规则不应用于验证非字符串数据。
CURLRequest 中 ssl_key 选项的使用已移除
CURLRequest 选项 ssl_key 不再被识别。如果正在使用,则必须将选项 ssl_key 替换为选项 verify 以定义 CURLRequest 的 CA 捆绑包路径。
CURLRequest 选项 verify 也可以像往常一样接受 *布尔* 值。
项目文件
**项目空间**(根目录、app、public、writable)中的某些文件已收到更新。由于这些文件位于**系统**范围之外,因此不会在没有您干预的情况下更改。
有一些第三方 CodeIgniter 模块可用于帮助合并对项目空间的更改:在 Packagist 上探索。
所有更改
这是一个所有在项目空间中发生变更的文件列表;其中许多只是简单的注释或格式更改,不会影响运行时。
app/Config/App.php
app/Config/Autoload.php
app/Config/Boot/development.php
app/Config/Boot/testing.php
app/Config/Cache.php
app/Config/Email.php
app/Config/Filters.php
app/Config/Kint.php
app/Config/Modules.php
app/Config/Publisher.php
app/Config/Session.php
app/Views/errors/cli/error_exception.php
app/Views/errors/html/error_exception.php
composer.json
env
spark