CakePHP:从3.9.x升级到4.0:bin/cake升级目录——规则phpunit80挂起

CakePHP:从3.9.x升级到4.0:bin/cake升级目录——规则phpunit80挂起,cakephp,cakephp-4.x,rector,Cakephp,Cakephp 4.x,Rector,我正在将CakePHP 3应用程序升级到CakePHP 4,并遵循升级指南 但是,bin/cake升级目录--rules phpunit80工具挂起 有一点背景,我的应用程序主要是用CakePHP3.6制作的。我先将它升级到3.7、3.8、3.9,然后在尝试升级到4之前确保一切正常(没有弃用警告) 我在跟踪调查。在“应用目录重构”之前,所有步骤都是成功的 当我运行此命令时: PS C:\xampp\htdocs\my_app\upgrade> bin/cake upgrade rector

我正在将CakePHP 3应用程序升级到CakePHP 4,并遵循升级指南

但是,
bin/cake升级目录--rules phpunit80
工具挂起

有一点背景,我的应用程序主要是用CakePHP3.6制作的。我先将它升级到3.7、3.8、3.9,然后在尝试升级到4之前确保一切正常(没有弃用警告)

我在跟踪调查。在“应用目录重构”之前,所有步骤都是成功的

当我运行此命令时:

PS C:\xampp\htdocs\my_app\upgrade> bin/cake upgrade rector --rules phpunit80 C:\xampp\htdocs\my_app\tests
我得到这个结果:

Rector v0.7.26
那么

它就挂在那里(大约1个小时了)

对于如何解决这个问题有什么建议吗

谢谢!
D.

嗯,我找到了解决问题的办法。这就是我让校长工作的原因

  • 将我的应用程序的Cake版本降级至3.8.12(was 3.9.0-RC2)
  • 手动修复了app\vendor\cakephp\plugin installer\src\installer\PluginInstaller.php:170中的花括号弃用通知
  • 为了修复
    Class-Cake\Composer\Installer\PluginInstaller无法自动加载,无法调用自动加载后转储脚本,我删除了我的app\vendor文件夹,然后运行
    Composer-update
    ,这似乎解决了这个问题。到目前为止,我还没有发现这个错误
  • 在此备份运行良好的应用程序,并在4.0升级指南中开始升级步骤
  • 在\upgrade中,运行了
    composer install--no dev
    ,再次收到消息
    Class Cake\composer\Installer\PluginInstaller不可自动加载,无法调用自动加载后转储脚本
  • 运行
    bin/cake升级文件\u重命名区域设置
    。没有问题
  • 运行bin/cake升级文件\u重命名模板
    。好的,没问题
  • 将我的
    config/app.php
    更改为
    app=>path=>templates,从'templates'=>[app.'Template.DS]更改为'templates'=>[ROOT.DS.'Template.DS]
    ,(还更改了区域设置)
  • 运行了
    bin/cake升级目录--rules phpunit80
    ,现在得到了结果。它似乎做了所有的更新,并输出了一些错误,但我决定继续
  • 运行了
    bin/cake-upgrade-rector-rules-cakephp40
    ,现在它似乎可以工作了。它显示更新的文件数、大量进度条等。它开始输出在我的控制器中所做的更改(按字母顺序),但在前几个控制器之后挂起。然而,查看我的src文件夹,我可以看到所有的控制器、模型等都已更新(上次修改的日期是现在)
  • 运行编写器要求--使用依赖项“phpunit/phpunit:^8.0”进行更新。完成并看起来正常
  • 运行
    composer require--update with dependencies“cakephp/cakephp:4.0.
    这里有很多依赖性问题。我采取了一些替代步骤并更新了所有内容(实际上是从中复制了composer.json)。这似乎解决了依赖性问题,但升级后的应用程序仍然存在很多问题
  • 我在这里不再赘述,因为上面的信息解决了最初的问题,我还没有完成一个干净的升级。最终,我倾向于开始一个新的干净的应用程序安装并重建我的应用程序,从重构文件(如上面提到的dype)复制和修复代码

    无论如何,谢谢你的回复。 祝你过得愉快,
    D.

    还有一点需要注意……bin/cake升级目录——rules cakephp40命令也会发生同样的情况。”(没有弃用警告)“你确定吗?在尝试迁移到4.x之前,您是否尝试过composer cs check、composer cs fix和phpstan?可能有错误,请检查您的CakePHP日志和一般PHP错误日志。感谢您的回复。我的CakePHP日志中唯一的错误是:找不到错误:[Cake\Routing\Exception\MissingControllerException]控制器类字体。(C:\xampp\htdocs\my_app\vendor\cakephp\cakephp\src\Http\ControllerFactory.php:105)composer cs检查结果:未将“phpcs”识别为内部或外部命令、可操作程序或批处理文件。脚本phpcs--colors--parallel=16-p-s src/测试/处理返回的cs check事件,错误代码为1OK。。。在我的应用程序目录中运行composer cs check会产生几个问题。第一个是:弃用注意:在C:\xampp\htdocs\my_app\vendor\cakephp\plugin installer\src\installer\PluginInstaller.php:170>phpcs--colors-p--standard=vendor/cakephp/cakephp code sniffer/cakephp src/tests中弃用带有花括号的数组和字符串偏移量访问语法/
    0/189 [>---------------------------]   0%