我正在使用4.x Upgrade Guide将一个站点从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中运行这个命令--结果都是一样的,这让我相信它是我的代码或配置文件中的某个东西。我试过在我的每个插件上运行这个命令,但我得到了相同的结果。
我也运行并修复了Codesniffer的所有错误和警告,但这没有什么区别。
我不知道下一站去哪里查询,非常感谢您的帮助。
1条答案
按热度按时间lrl1mhuk1#
我进行了从3.4到4.0的升级后,迁移指南到一个T,经历了每一个小的升级,我仍然有同样的问题与rector挂起。
解决方案是,有一个开箱即用的PagesController在3.4和3.10之间的某个时候被更改了。我不得不用 backbone 应用程序(https://github.com/cakephp/app/blob/3.x/src/Controller/PagesController.php)中的版本替换它,以便让rector通过。
如果这不是你的问题,尝试运行rector一次一个目录来识别有问题的文件。$ find /路径/目的地/应用程序/源代码/ -类型d