5.0 升级指南

首先,检查您的应用程序是否在最新的 CakePHP 4.x 版本上运行。

修复弃用警告

一旦您的应用程序在最新的 CakePHP 4.x 上运行,在 **config/app.php** 中启用弃用警告。

'Error' => [
    'errorLevel' => E_ALL,
]

现在您可以看到所有警告,请确保在继续升级之前修复这些警告。

您应该确保已解决的一些可能具有影响力的弃用包括

  • Table::query() 在 4.5.0 中被弃用。请改用 selectQuery()updateQuery()insertQuery()deleteQuery()

升级到 PHP 8.1

如果您没有在 **PHP 8.1 或更高版本** 上运行,则需要在更新 CakePHP 之前升级 PHP。

注意

CakePHP 5.0 至少需要 **PHP 8.1**。

使用升级工具

注意

升级工具仅适用于在最新的 CakePHP 4.x 上运行的应用程序。您不能在更新到 CakePHP 5.0 后运行升级工具。

由于 CakePHP 5 利用了联合类型和 mixed,因此在方法签名和文件重命名方面存在许多向后不兼容的更改。为了帮助加快修复这些繁琐的更改,提供了一个升级 CLI 工具。

# Install the upgrade tool
git clone https://github.com/cakephp/upgrade
cd upgrade
git checkout 5.x
composer install --no-dev

安装升级工具后,您现在可以在应用程序或插件上运行它。

bin/cake upgrade rector --rules cakephp50 <path/to/app/src>
bin/cake upgrade rector --rules chronos3 <path/to/app/src>

更新 CakePHP 依赖

应用 rector 重构后,您需要在您的 composer.json 中升级 CakePHP、其插件、PHPUnit 以及可能的其他依赖项。此过程在很大程度上取决于您的应用程序,因此我们建议您将您的 composer.jsoncakephp/app 中的版本进行比较。

在您的 composer.json 中调整版本字符串后,执行 composer update -W 并检查其输出。

根据最新的应用程序模板更新应用程序文件

接下来,确保您的应用程序其余部分已更新为基于 cakephp/app 的最新版本。