TECHNOLOGIES
Rector, refactoring automatique PHP
Rector est un outil de refactoring automatique pour PHP basé sur l'analyse de l'AST. Il applique des règles de transformation prédéfinies ou personnalisées pour moderniser le code, supprimer les patterns dépréciés et automatiser les migrations de version.
Cette fiche documente nos conventions d'usage, notre configuration type et notre intégration dans les pipelines CI/CD.
POURQUOI RECTOR
Ce qui en fait un outil indispensable sur nos projets
Rector s'est imposé dans notre workflow dès qu'un projet atteint une certaine maturité. Voici pourquoi nous l'activons systématiquement sur les projets Symfony en évolution.
Refactoring automatisé à grande échelle
Rector analyse l'AST (arbre syntaxique) du code et applique des centaines de règles de transformation en une seule commande. Ce qui prendrait des semaines à la main s'exécute en minutes.
Migrations de version PHP et Symfony
Les sets officiels LevelSetList::UP_TO_PHP_83 et SymfonySetList::SYMFONY_70 modernisent automatiquement le code lors de chaque montée de version majeure.
Suppression de la dette technique
Rector détecte et corrige les patterns dépréciés, les appels obsolètes et les anti-patterns connus — sans risque d'oubli et sans revue manuelle exhaustive.
Diff lisible et explicable
Chaque transformation produit un diff clair et atomique. Le code modifié par Rector est révisable en MR comme n'importe quelle contribution humaine — aucune boîte noire.
Règles personnalisées
Rector est extensible : on peut écrire ses propres règles pour appliquer des conventions internes, renommer des classes ou migrer vers une nouvelle API maison.
Mode CI — vérification sans modification
L'option --dry-run transforme Rector en linter : il signale les règles non appliquées sans modifier le code, idéal pour bloquer une MR qui ne respecte pas les standards.
NOTRE USAGE
Comment nous utilisons Rector chez SmartBooster
Rector intervient à plusieurs moments du cycle de vie d'un projet. Voici les quatre contextes dans lesquels nous l'utilisons.
Montées de version PHP et Symfony
Rector nous fait gagner un temps précieux lors d'une migration majeure. Il applique les sets officiels puis nous revoyons le diff avant de compléter manuellement.
Résorption de dette technique
Sur les projets legacy, Rector modernise en lot les patterns dépréciés (annotations Doctrine → attributs PHP 8, constructors promotion, types stricts…).