- GitHub - rectorphp/rector: Instant Upgrades and Automated Refactoring of any PHP 5.3+ code
- Instant Upgrades and Automated Refactoring of any PHP 5.3+ code - rectorphp/rector
Texto traduzido pela IA.
Resumo do texto pela IA do durumis
- Apresentamos como usar a ferramenta Rector para migrar código PHP 5.3 para PHP 7.4.
- Após a instalação do Composer, instale o Rector no projeto e configure o arquivo rector.php para especificar o código alvo da atualização e a versão do PHP.
- Configure as regras de modificação e execute-as para corrigir o código automaticamente. Use o Git para gerenciar as alterações e garantir uma atualização segura.
Enquanto explorava um site do Gnuboard5, um CMS PHP da Coreia do Sul, encontrei algumas postagens de usuários que estavam tendo dificuldades com a sintaxe e a versão descontinuadas após a atualização da versão do PHP.
Então, continuei procurando e...
no Reddit, vi que uma ferramenta chamada Rector pode ajudar na migração, então decidi apresentar como usá-la.
Desde o lançamento do PHP 7.0 em 2015, surgiram ferramentas de migração do PHP, como php cs-fixer e Rector.
O Rector parece ser mais fácil de usar.
O Rector (pronúncia: Rector) verifica a sintaxe do código PHP 5.3 a 8.2 e corrige-o para a versão desejada.
Uma coisa que é uma pena é que o Rector é um analisador estático, então ele não pode detectar erros em tempo de execução.
O Rector requer que o Composer, a ferramenta de gerenciamento de pacotes PHP, esteja instalado.
1. Instale o Composer.
2. Instale o Rector na pasta do projeto atual.
3. Crie o arquivo de configuração rector.php.
Configuração do rector.php
Para facilitar a compreensão, vamos definir uma situação.
Vamos supor que o código-fonte seja código PHP 5.3 e o objetivo da atualização seja o PHP 7.4.
A versão do Rector é 1.0.3.
RectorConfig::config() define a pasta do código-fonte e a configuração da versão do PHP.
A função withPhpSets define as funções PHP que você deseja atualizar.
Se a versão atual do PHP em que o Rector está sendo executado for PHP 8.0,
Você pode definir a versão do PHP como true dessa maneira.
Mas se a versão do PHP em execução for PHP 7.4 ou inferior
A sintaxe de parâmetros nomeados em funções não pode ser usada, portanto, você precisa definir true para a versão desejada.
O Rector suporta o PHP 8.3, então para especificar o PHP 7.4, faça o seguinte:
->withPaths([
__DIR__ , // Este é o diretório onde o rector.php está localizado.
])
Especifica as regras e pastas que você não deseja aplicar.
A pasta é '/nome_da_pasta/*'.
O arquivo é 'nome_do_arquivo'.
Adicionei a regra "SensitiveConstantNameRector".
O Rector não consegue detectar a existência de um índice indefinido em um array PHP e o reconhece apenas como uma constante, tentando alterá-lo incorretamente. Portanto, adicionamos isso às regras de exclusão.
Essas regras são apenas de estilo de código, então as excluímos.
Executar
Existem duas maneiras de executar.
Este comando apenas imprime no console as alterações que precisam ser feitas no código.
Quanto maior o código-fonte, mais RAM será necessária, por isso você deve usar a opção --memory-limit=2G para definir a quantidade de RAM a ser usada.
Este comando modifica o código-fonte imediatamente.
Como há muitas opções, algumas opções indesejadas podem ser aplicadas, por isso é necessário verificar com o Git.