Cake PHP: обновление с 3.9.x до 4.0: bin / cake upgrade rector --rules phpunit80 Зависает - PullRequest
0 голосов
/ 30 мая 2020

Я обновляю приложение Cake PHP 3 до Cake PHP 4 и следую руководству по обновлению.

Однако инструмент bin/cake upgrade rector --rules phpunit80 <path/to/app/tests> зависает.

Немного фон, мое приложение было сделано в основном на Cake PHP 3.6. Я обновил его до 3.7, затем 3.8, затем 3.9 и убедился, что все работает (без предупреждений об устаревании), прежде чем пытаться обновить до 4.

Я следую Cake PHP 4.0 руководство по обновлению . Все шаги выполняются успешно вплоть до «Применение рефакторинга Rector».

Когда я запускаю это:

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 часа).

Есть какие-нибудь советы, как это решить?

Спасибо! Д.

1 Ответ

0 голосов
/ 03 июня 2020

Ну вроде как придумал решение проблемы. Вот как я заставил Rector работать.

  1. Понизил версию Cake моего приложения до 3.8.12 (было 3.9.0-RC2)
  2. Замечание об устаревании фигурных скобок вручную исправлено в приложении \ 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. Ran 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> и теперь получил результаты. Казалось, что все обновления и выдача некоторых ошибок, но я решил go вперед.
  10. Ran bin/cake upgrade rector --rules cakephp40 <path/to/app/src>, и теперь, похоже, он работает. Он показывает количество обновленных файлов, множество индикаторов выполнения и т. Д. c. Он начал выводить изменения, сделанные в моих контроллерах (в алфавитном порядке), но затем он зависает после первых нескольких контроллеров. Однако, заглянув в мои папки sr c, я вижу, что все контроллеры, модели и т.д. c обновлены (дата последнего изменения только сейчас).
  11. Ran composer require --update-with-dependencies "phpunit/phpunit:^8.0". Завершено и выглядит нормально.
  12. Ran composer require --update-with-dependencies "cakephp/cakephp:4.0. МНОГО проблем с зависимостью здесь. Я предпринял несколько альтернативных шагов и все обновил (на самом деле скопировал composer. json из сюда ). Казалось, что это решило проблемы с зависимостями, но с обновленным приложением все еще есть множество проблем.

Я не собираюсь дальше здесь, поскольку эта информация выше касается исходного вопроса, и я еще не закончил чистый апгрейд. В конце концов, я склоняюсь к запуску fre sh, чистой установке приложения и перестройке моего приложения, копированию и исправлению кода из рефакторинговых файлов (например, dype, упомянутого выше).

В любом случае, спасибо за ваши ответы. Всего хорошего, Д.

...