초록 기린

Présentation de Rector, l'outil de mise à niveau de version PHP

Création: 2024-03-24

Création: 2024-03-24 23:17

En consultant un site utilisant le CMS PHP coréen GNU Board 5, j'ai remarqué plusieurs messages d'utilisateurs rencontrant des difficultés suite à une mise à jour de la version de PHP, notamment en raison de syntaxes et de versions obsolètes.

J'ai donc cherché des solutions et...

sur Reddit, j'ai découvert qu'un outil appelé Rector pouvait faciliter la migration. Je vous présente donc son utilisation.



Depuis la sortie de PHP 7.0 en 2015, des outils de migration PHP ont vu le jour, tels que PHP CS Fixer et Rector.

Rector semble être plus convivial.

Rector (prononcé : Recteur) permet d'analyser et de corriger la syntaxe du code PHP des versions 5.3 à 8.2, afin de l'adapter à la version souhaitée.


Un point à noter est que Rector est un analyseur statique, il ne peut donc pas détecter les erreurs qui surviennent lors de l'exécution du code.



Rector nécessite l'installation de Composer, le gestionnaire de paquets PHP.

1. Installez Composer.

2. Installez Rector dans le répertoire de votre projet actuel.

3. Créez le fichier de configuration rector.php.



Configuration de rector.php

Pour faciliter la compréhension, nous allons définir un scénario.

Nous allons supposer que le code source est en PHP 5.3 et que la version cible de la mise à jour est PHP 7.4.

La version de Rector utilisée est 1.0.3.


RectorConfig::config() permet de définir le dossier du code source et la version de PHP.

La fonction withPhpSets définit les fonctions PHP à mettre à jour.


Si la version de PHP utilisée pour exécuter Rector est PHP 8.0,


vous pouvez définir la version PHP de cette manière : versionPHP : true.

Cependant, si la version PHP en cours d'exécution est inférieure ou égale à PHP 7.4


la syntaxe des paramètres nommés pour les fonctions n'est pas disponible. Il faut donc définir true pour la version souhaitée.

Rector prenant en charge PHP 8.3, pour spécifier PHP 7.4, il faut procéder comme suit :


->withPaths([
__DIR__ , // Il s'agit du répertoire où se trouve rector.php.
])



Cela permet de spécifier les règles et les dossiers à ne pas appliquer.

Pour les dossiers, utilisez '/nomDuDossier/*'.

Pour les fichiers, utilisez 'nomDuFichier'.


J'ai ajouté la règle "SensitiveConstantNameRector".

Rector ne parvient pas à identifier les index non définis dans les tableaux PHP et les traite comme des constantes, ce qui peut entraîner des modifications inappropriées. Il est donc important de l'ajouter aux règles d'exclusion.

Ces règles concernent le style de code, il est donc préférable de les exclure.


Exécution

Deux options sont disponibles.

Cette commande affiche uniquement les modifications à apporter dans la console.

Plus le code source est volumineux, plus la mémoire RAM requise est importante. Il est donc conseillé d'utiliser l'option --memory-limit=2G pour spécifier la quantité de mémoire à utiliser.


Cette commande modifie directement le code source.

Étant donné le grand nombre d'options disponibles, il est possible que des options non souhaitées soient appliquées. Il est donc recommandé d'utiliser Git pour suivre les modifications.



Commentaires0