Из статьи понятно что вы апгрейдите код от версии 7, прямиком к версии 8.
А с деплоем как? Или все на кубернетисах?
Да у нас кубер, до этого был сворм. У нас есть возможность менять образ PHP прямо в проекте и я делаю это вместе с апгрейдом кодом. Всё в рамках одного мердж-реквеста и одного деплоя.
Если у вас версию PHP нужно менять отдельно, то делать "переходную версию" это единственное безопасное решение.
Я пытался использовать ректор что бы хотя бы найти все места где код "не работал бы" в пхп 8, но не нашёл способа как это сделать.
Попробуйте ещё использовать инструмент стат анализа PHPStan. Он может указать например какие методы не существуют.
Ещё у Rector можно насильно указать в какой версии PHP делать рефакторинг. Например у меня локально на компьютере стоит PHP 8.1, но в контейнере в проекте текущая 7.4. Я хочу сделать в проекте 8.0 и чтобы бы код тоже был под 8.0. Для этого в конфиге rector.php указываю
$rectorConfig->phpVersion(PhpVersion::PHP_80);
и теперь я могу своей локальной пыхой (которая 8.1) rector'ить код под 8.0.
И может таким образом он сможет показать какие участки кода нужно улучшить.
да, это боль ....
Хорошие советы, статья - топ!
Да у нас кубер, до этого был сворм. У нас есть возможность менять образ PHP прямо в проекте и я делаю это вместе с апгрейдом кодом. Всё в рамках одного мердж-реквеста и одного деплоя.
Если у вас версию PHP нужно менять отдельно, то делать "переходную версию" это единственное безопасное решение.
Попробуйте ещё использовать инструмент стат анализа PHPStan. Он может указать например какие методы не существуют.
Ещё у Rector можно насильно указать в какой версии PHP делать рефакторинг. Например у меня локально на компьютере стоит PHP 8.1, но в контейнере в проекте текущая 7.4. Я хочу сделать в проекте 8.0 и чтобы бы код тоже был под 8.0. Для этого в конфиге rector.php указываю
и теперь я могу своей локальной пыхой (которая 8.1) rector'ить код под 8.0.
И может таким образом он сможет показать какие участки кода нужно улучшить.
Да, тоже хорошее решение.
Мне если какие-то правила начинают мешать или что-то не так рефакторить, то я скипаю сам файл, либо правило, либо правило в этом файле:
спасибо Кирилл!)
спасибо)