从 4.1.9 升级到 4.2.0
请参阅与您的安装方法相对应的升级说明。
强制文件更改
index.php 和 spark
以下文件收到了重大更改,您必须将更新的版本与您的应用程序合并
public/index.php
spark
重要
如果您不更新以上两个文件,那么在运行 composer update
后,CodeIgniter 将完全无法工作。
例如,升级过程如下
composer update
cp vendor/codeigniter4/framework/public/index.php public/index.php
cp vendor/codeigniter4/framework/spark .
Config/Constants.php
常量 EVENT_PRIORITY_LOW
、EVENT_PRIORITY_NORMAL
和 EVENT_PRIORITY_HIGH
已弃用,定义已移至 app/Config/Constants.php
。如果您使用这些常量,请在 app/Config/Constants.php
中定义它们。或使用新的类常量 CodeIgniter\Events\Events::PRIORITY_LOW
、CodeIgniter\Events\Events::PRIORITY_NORMAL
和 CodeIgniter\Events\Events::PRIORITY_HIGH
。
composer.json
如果您使用 Composer,当您安装 CodeIgniter v4.1.9 或更早版本时,并且如果 App\\
和 Config\\
命名空间在 /composer.json
的 autoload.psr-4
中如下所示,您需要删除这些行,并运行 composer dump-autoload
。
{
...
"autoload": {
"psr-4": {
"App\\": "app", <-- Remove this line
"Config\\": "app/Config" <-- Remove this line
}
},
...
}
重大更改
system/bootstrap.php
文件不再返回CodeIgniter
实例,并且不加载.env
文件(现在在index.php
和spark
中处理)。如果您有期望这些行为的代码,它将不再起作用,并且必须修改。此更改是为了使 预加载 更易于实现。
重大增强
Validation::setRule()
的方法签名已更改。$rules
参数上的string
类型提示已删除。扩展类也应删除该参数,以免破坏 LSP。CodeIgniter\Database\BaseBuilder::join()
和CodeIgniter\Database\*\Builder::join()
的方法签名已更改。$cond
参数上的string
类型提示已删除。扩展类也应删除该参数,以免破坏 LSP。
项目文件
项目空间(根目录、应用程序、公共、可写)中的众多文件已收到更新。由于这些文件位于系统范围之外,因此在您不干预的情况下,它们不会更改。有一些第三方 CodeIgniter 模块可帮助将更改合并到项目空间:在 Packagist 上探索。
注意
除了极少数情况下用于修复错误,对项目空间的文件所做的任何更改都不会破坏您的应用程序。此处记录的所有更改在下一个主要版本之前都是可选的,任何强制性更改都将在上述部分中介绍。
内容更改
以下文件收到了重大更改(包括弃用或视觉调整),建议您将更新版本与您的应用程序合并
app/Config/Routes.php
为了使默认配置更加安全,已将自动路由更改为默认禁用。
所有更改
这是项目空间中收到更改的所有文件的列表;许多将是简单的注释或格式,对运行时没有影响
app/Config/App.php
app/Config/Constants.php
app/Config/ContentSecurityPolicy.php
app/Config/Database.php
app/Config/Events.php
app/Config/Feature.php
app/Config/Filters.php
app/Config/Format.php
app/Config/Logger.php
app/Config/Mimes.php
app/Config/Publisher.php
app/Config/Routes.php
app/Config/Security.php
app/Config/Validation.php
app/Config/View.php
app/Controllers/BaseController.php
app/Views/errors/html/debug.css
app/Views/errors/html/debug.js
app/Views/errors/html/error_404.php
app/Views/errors/html/error_exception.php
app/Views/errors/html/production.php
app/Views/welcome_message.php
app/index.html
preload.php
public/index.php
spark