首先,检查您的应用程序是否在最新的 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 或更高版本** 上运行,则需要在更新 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>
应用 rector 重构后,您需要在您的 composer.json
中升级 CakePHP、其插件、PHPUnit 以及可能的其他依赖项。此过程在很大程度上取决于您的应用程序,因此我们建议您将您的 composer.json
与 cakephp/app 中的版本进行比较。
在您的 composer.json
中调整版本字符串后,执行 composer update -W
并检查其输出。
接下来,确保您的应用程序其余部分已更新为基于 cakephp/app 的最新版本。