gpt4 book ai didi

CakePHP:从 3.9.x 升级到 4.0:bin/cake upgrade rector --rules phpunit80 挂起

转载 作者:行者123 更新时间:2023-12-04 14:14:09 26 4
gpt4 key购买 nike

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

然而,bin/cake upgrade rector --rules phpunit80 <path/to/app/tests>工具挂起。

一些背景知识,我的应用程序主要是在 CakePHP 3.6 中制作的。我将它升级到 3.7,然后是 3.8,然后是 3.9,并在尝试升级到 4 之前确保一切正常(没有弃用警告)。

我正在关注 CakePHP 4.0 upgrade guide .直到“Applying Rector Refactorings”为止的所有步骤都是成功的。

当我运行这个时:

PS C:\xampp\htdocs\my_app\upgrade> bin/cake upgrade rector --rules phpunit80 C:\xampp\htdocs\my_app\tests

我得到这个结果:

Rector v0.7.26

然后,

0/189 [>---------------------------]   0%

它只是卡在那里(已经大约 1 小时了)。

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

谢谢!D.

最佳答案

好吧,我想出了一个解决问题的方法。这就是我如何让 Rector 工作的。

  1. 将我应用的 Cake 版本降级到 3.8.12(原为 3.9.0-RC2)
  2. 手动修复 app\vendor\cakephp\plugin-installer\src\Installer\PluginInstaller.php:170 中的大括号弃用通知
  3. 修复Class Cake\Composer\Installer\PluginInstaller is not autoloadable, can not call post-autoload-dump script ,我删除了我的 app\vendor 文件夹,然后运行 ​​composer update ,这似乎解决了这个问题。到这里为止还没有得到那个错误。
  4. 在这里备份了运行良好的应用程序,并开始了 4.0 升级指南中的升级步骤。
  5. 在\upgrade 中,运行 composer install --no-dev , 再次收到消息 Class Cake\Composer\Installer\PluginInstaller is not autoloadable, can not call post-autoload-dump script .
  6. bin/cake upgrade file_rename locales <path/to/app> .没问题。
  7. Ran bin/cake upgrade file_rename templates <path/to/app> .好的,没问题。
  8. 更改了我的 config/app.php成为App=> paths => templates from 'templates' => [APP . 'Template' . DS], to 'templates' => [ROOT . DS . 'Template' . DS] ,(也做了语言环境)。
  9. bin/cake upgrade rector --rules phpunit80 <path/to/app/tests>现在得到了结果。它似乎进行了所有更新,并输出了一些错误,但我决定继续。
  10. bin/cake upgrade rector --rules cakephp40 <path/to/app/src> ,现在它似乎起作用了。它显示更新的文件数量、大量进度条等。它开始输出在我的 Controller 中所做的更改(按字母顺序),但随后它在前几个 Controller 之后挂起。但是,查看我的 src 文件夹,我可以看到所有 Controller 、模型等都已更新(最后修改日期刚刚好)。
  11. composer require --update-with-dependencies "phpunit/phpunit:^8.0" .完成并看起来不错。
  12. composer require --update-with-dependencies "cakephp/cakephp:4.0.这里有很多依赖性问题。我采取了一些替代步骤并更新了所有内容(实际上从 here 复制了 composer.json)。这似乎解决了依赖性问题,但升级后的应用程序仍然存在无数问题。

我不会在这里进一步讨论,因为上面的信息解决了最初的问题,而且我还没有完成干净的升级。最终,我倾向于开始全新、干净的应用程序安装并重建我的应用程序,从重构文件(如上面提到的 dype)复制和修复代码。

无论如何,感谢您的回复。祝你有个好的一天,D.

关于CakePHP:从 3.9.x 升级到 4.0:bin/cake upgrade rector --rules phpunit80 挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62097953/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com