Pull to refresh
20
0
Александр Володин @Alex-Volodin

backend developer

Send message

Из статьи понятно что вы апгрейдите код от версии 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
    $rectorConfig->skip([
        CatchExceptionNameMatchingTypeRector::class,
        
        // или

        CatchExceptionNameMatchingTypeRector::class => [
             __DIR__ . '/src/Some.php'
        ],
    ];
    

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Registered
Activity