从 4.3.4 升级到 4.3.5

请根据你的安装方式参考对应的升级说明。

破坏性变更

验证占位符

要安全地使用 验证占位符,请务必为将用作占位符的字段创建对应的验证规则。

例如,如果有如下代码:

$validation->setRules([
    'email' => 'required|max_length[254]|valid_email|is_unique[users.email,id,{id}]',
]);

则需要为 {id} 添加规则:

$validation->setRules([
    'id'    => 'max_length[19]|is_natural_no_zero', // Add this
    'email' => 'required|max_length[254]|valid_email|is_unique[users.email,id,{id}]',
]);

Session::stop()

在 v4.3.5 之前,由于一个 bug,Session::stop() 方法并不会销毁会话。该方法已被修改为会销毁会话,并且现在已被弃用,因为它与 Session::destroy() 方法完全相同。因此,请改用 Session::destroy 方法。

如果现有代码依赖于该 bug 的行为,请将其替换为 session_regenerate_id(true)

项目文件

项目空间 (根目录、app、public、writable)中的部分文件已更新。 由于这些文件位于 system 范围之外,框架不会在没有你介入的情况下自动修改它们。

目前有一些第三方 CodeIgniter 模块可用于协助合并项目空间中的变更: 在 Packagist 上浏览

内容变更

以下文件发生了较大的改动(包括弃用项或界面调整),建议将更新后的版本合并到你的应用中:

配置

  • app/Config/Generators.php

所有变更

以下列出了 项目空间 中所有发生变更的文件;其中许多只是简单的注释或格式调整,对运行时没有影响:

  • app/Config/App.php

  • app/Config/Generators.php

  • composer.json