我正在使用4.x 升级指南将站点从 CakePHP 3.10.0 升级到 CakePHP 4.x。我一直成功,直到您需要运行以下命令:
bin/cake upgrade rector --rules phpunit80 <path/to/app/tests>
bin/cake upgrade rector --rules cakephp40 <path/to/app/src>
我跳过了第一个命令,因为我不进行单元测试(还没有!)。当我运行第二个命令时,它只是挂起。此命令根本没有输出。我让它坐了几个小时,但它什么也没做。我添加-v
到命令中,最后得到了一些输出,但它仍然挂起:
$ bin/cake upgrade rector --rules cakephp40 ../vintage-lib/src -v
Detecting autoload file for /mnt/d/Programming/PHP/vintage-lib/src
-> Checking /mnt/d/Programming/PHP/vintage-lib/src/vendor/autoload.php
-> Checking /mnt/d/Programming/PHP/vintage-lib/vendor/autoload.php
-> Found /mnt/d/Programming/PHP/vintage-lib/vendor/autoload.php
Running /mnt/d/Programming/PHP/upgrade/vendor/bin/rector process --autoload-file='/mnt/d/Programming/PHP/vintage-lib/vendor/autoload.php' --config='/mnt/d/Programming/PHP/upgrade/config/rector/cakephp40.php' --working-dir='/mnt/d/Programming/PHP/vintage-lib/src' '/mnt/d/Programming/PHP/vintage-lib/src'
我已经尝试在 Windows、WSL 甚至 Linux VM 中运行它——结果保持不变,这让我相信它与我的代码或配置文件有关。我试图在我的每个插件上运行该命令,但我得到了相同的结果。
我还运行并修复了来自代码嗅探器的所有错误和警告,但这没有任何区别。
我不知所措,因为我不知道下一步该去哪里检查。任何帮助将不胜感激。