Rector met à niveau et refactorise instantanément le code PHP de votre application. Il peut vous aider dans 2 grands domaines :
Rector prend désormais en charge les mises à niveau de PHP 5.3 vers 8.4 et les principaux projets open source comme Symfony, PHPUnit et Doctrine. Voulez-vous être constamment sur les derniers PHP et Framework sans effort ?
Utilisez Rector pour gérer les mises à niveau instantanées pour vous.
Avez-vous besoin de la qualité de code dont vous avez besoin, mais avez-vous du mal à la conserver avec les nouveaux développeurs de votre équipe ? Voulez-vous voir des révisions de code intelligentes même lorsque tous les développeurs seniors dorment ?
Ajoutez Rector à votre CI et laissez-le refactoriser continuellement votre code et maintenir la qualité du code élevée.
Lisez notre article de blog pour voir comment configurer la refactorisation automatisée.
composer require rector/rector --dev
Il existe 2 manières principales d’utiliser Rector :
Pour les utiliser, créez un rector.php
dans votre répertoire racine :
vendor/bin/rector
Et modifiez-le :
use Rector Config RectorConfig ;
use Rector TypeDeclaration Rector Property TypedPropertyFromStrictConstructorRector ;
return RectorConfig:: configure ()
// register single rule
-> withRules ([
TypedPropertyFromStrictConstructorRector::class
])
// here we can define, what prepared sets of rules will be applied
-> withPreparedSets (
deadCode: true ,
codeQuality: true
);
Puis test à sec Recteur :
vendor/bin/rector process src --dry-run
Rector vous montrera les différences de fichiers qu'il modifierait . Pour apporter les modifications, déposez --dry-run
:
vendor/bin/rector process src
Êtes-vous curieux de savoir comment Rector fonctionne en interne, comment créer vos propres règles et les tester et pourquoi Rector est né ? Lisez Rector - La puissance de la refactorisation automatisée qui vous guidera étape par étape à travers la configuration de Rector et comment créer vos propres règles.
La communauté Rector est puissante grâce aux mainteneurs actifs qui s'occupent des ensembles Rector pour des projets particuliers.
Parmi ces projets figurent :
Rector est un outil que nous développons et partageons gratuitement, afin que chacun puisse automatiser sa refactorisation. Mais tout le monde n’a pas des dizaines d’heures pour comprendre la complexité de l’arbre de syntaxe abstraite à son rythme. C'est pourquoi nous fournissons une assistance commerciale – pour vous faire gagner du temps .
Souhaitez-vous appliquer Rector sur votre base de code mais vous n'avez pas le temps de vous battre avec votre projet ? Embauchez-nous pour y arriver plus rapidement.
Consultez le guide de contribution ou accédez au référentiel de développement rector/rector-src.
Vous pouvez utiliser l'option --debug
, qui imprimera le résultat des exceptions imbriquées :
vendor/bin/rector process src/Controller --dry-run --debug
Ou avec Xdebug :
--xdebug
lors de l'exécution de Rector vendor/bin/rector process src/Controller --dry-run --xdebug
Pour faciliter le débogage simple, Rector fournit 2 assistants pour imprimer joliment les nœuds AST :
use PhpParser Node Scalar String_ ;
$ node = new String_ ( ' hello world! ' );
// prints node to string, as PHP code displays it
print_node ( $ node );
Rector utilise nikic/php-parser, construit sur une technologie appelée arbre de syntaxe abstraite (AST). Un AST ne connaît pas les espaces et lorsqu'il est écrit dans un fichier, il produit du code mal formaté en PHP et en annotations docblock.
Le recteur en mode parallèle fonctionnera la plupart du temps pour la plupart des systèmes d'exploitation. Sous Windows, vous pouvez rencontrer des problèmes insolubles même si vous suivez le guide de dépannage parallèle. Dans ce cas, vérifiez si vous utilisez Powershell 7 (pwsh). Changez votre terminal en invite de commande (cmd) ou bash pour Windows.
Votre projet doit disposer d'un outil standard de codage et d'un ensemble de règles de formatage, afin de rendre le code de sortie de Rector à nouveau beau et brillant.
Nous utilisons ECS avec cette configuration.
Lorsque vous appliquez des modifications à des fichiers avec du contenu PHP + HTML, vous devrez peut-être vérifier manuellement le fichier modifié après avoir appliqué les modifications.