
Vous êtes développeur PHP et vous en avez marre de passer des heures pour effectuer des changements fastidieux dans votre code ? Vous êtes fatigué de devoir passer en revue chaque ligne de code pour vous assurer que vous n’avez rien oublié ? Et si je vous disais qu’il existe une solution pour vous faciliter la vie ?
Rector, petit outil magique open source, qui permet de mettre à jour automatiquement le code PHP d’une application en fonction de règles prédéfinies. Il peut être utilisé pour :
- Mettre à jour le code en fonction de nouvelles versions de PHP ou de frameworks.
- Appliquer des conventions de codage uniformes à travers tout le codebase.
- Supprimer du code obsolète ou déprécié.
Tout d’abord, il faut que vous ayez PHP et Composer installés sur votre ordinateur. Si ce n’est pas déjà fait, vous pouvez suivre la documentation de PHP pour les installer.
Une fois que c’est fait, vous devez d’abord l’installer via Composer :
composer require rector/rector –dev
Ensuite, il vous faudra créer un fichier de configuration correspondant à rector avec des règles prédéfinies en fonction de votre projet en utilisant :
php vendor/bin/rector init
Ensuite, dans ce fichier de configuration rector.php qui définit les règles à appliquer au code, vous allez pouvoir définir vos propres règles (disponibles sur la documentation officielle de rector) telles que :
use Rector\Config\RectorConfig;
use Rector\Php80\Rector\Class_\DoctrineAnnotationClassToAttributeRector;
return static function (RectorConfig $rectorConfig): void {
$rectorConfig->ruleWithConfiguration(DoctrineAnnotationClassToAttributeRector::class, [
DoctrineAnnotationClassToAttributeRector::REMOVE_ANNOTATIONS => true,
]);
};
Ce qui aura pour effet de refactoriser la doctrine @annotation classe annotée à une classe d’attributs PHP 8.0
-use Doctrine\Common\Annotations\Annotation\Target;
+use Attribute;
-/**
- * @Annotation
- * @Target({"METHOD"})
- */
+#[Attribute(Attribute::TARGET_METHOD)]
class SomeAnnotation
{
}
Ou encore en utilisant :
use Rector\Set\ValueObject\SetList;
use Rector\Config\RectorConfig;
return function (RectorConfig $rectorConfig): void {
$rectorConfig->import(SetList::PHP_80);
};
Qui aura pour effet si vous avez besoin de migrer à la version 8 de PHP de le faire pour vous.
Attention toute fouis lors ce que vous utilisez une nouvelle fonction pensez bien à importer le namespace si cela ne se fait pas automatiquement.
Et si passait à l’analyse du code maintenant?
Pour exécuter Rector sur votre code et avoir un aperçu des modifications suggérées, utilisez la commande suivante :
php vendor/bin/rector process --dry-run
Et pour apporter des modifications, exécutez la commande :
php vendor/bin/rector process
Rector analysera le code de votre application et appliquera les règles de mise à jour définies dans la configuration.
Il peut faire mieux, vous pouvez également utiliser Rector avec un outil de contrôle de version comme GitHub avec les GitHub Actions pour automatiser la mise à jour du code lors de la création de pull requests par exemple.
Mais ce n’est pas tout ! Rector vous permet également de découvrir des problèmes potentiels dans votre code avant même de les rencontrer. Grâce à sa puissante intégration avec PHPStan, vous pouvez être sûr que votre code est de qualité supérieure avant même de le tester.
Si vous venez à modifier le fichier de configuration pour effectuer de nouvelles modifications avec de nouvelles règles, ce qui peut être utile en fonction de feature de votre projet, Rector utilisant un système de cache des modifications peut ne pas analyser certains fichiers. Pour éviter d’être confronté à ce genre de soucis, utilisez simplement :
php vendor/bin/rector process --dry-run –clear-cache
N’oubliez pas que ce n’est qu’un outil aussi puissant est-il, je vous invite tout de même à vérifier et à comprendre les modifications qu’il compte effectuer. Premièrement, ça évitera les modifications dans des fichiers ou vous n’attendez pas spécialement de modifications (soyez précis dans vos règles, vous pouvez demander l’exclusion de certains fichiers.). Et deuxièmement ça vous permettra de vous familiariser avec votre code refactorisé. |
En utilisant Rector, vous pouvez maintenir facilement votre code à jour et suivre les dernières tendances en matière de développement PHP. Cela peut également vous aider à éviter les problèmes de compatibilité et à améliorer la qualité et la lisibilité de votre code.
Alors, qu’attendez-vous ? Essayez Rector dès maintenant et simplifiez-vous la vie de développeur ! Vous verrez, une fois que vous aurez goûté aux joies du refactoring automatisé, vous ne pourrez plus vous en passer.
Bonne année à tous & Good dev.