Code-Refactoring beherrschen: Eine vollständige Anleitung zur Verwendung von Rector PHP

WBOY
Freigeben: 2024-08-26 06:31:32
Original
225 Leute haben es durchsucht

Mastering Code Refactoring: A Complete Guide to Using Rector PHP
Foto von Matteo del Piano auf Unsplash

Einführung in Rector PHP

In der sich ständig weiterentwickelnden Welt der PHP-Entwicklung ist es von entscheidender Bedeutung, Ihre Codebasis sauber, aktuell und effizient zu halten. Hier kommt Rektor PHP ins Spiel. Wenn Sie sich gefragt haben, wie Sie Rector PHP verwenden, wie Sie es installieren oder was genau Rector PHP ist, ist diese umfassende Anleitung genau das Richtige für Sie. Wir führen Sie durch die Grundlagen, stellen ein detailliertes Rector PHP-Tutorial zur Verfügung und bieten Einblicke in PHP Rector und wie man es effektiv nutzt. Am Ende dieses Artikels werden Sie ein solides Verständnis von Rector PHP haben und wissen, wie es Ihren Entwicklungsworkflow verbessern kann.

Was ist Rector PHP?

Rector wurde im Jahr 2020 gestartet, erhielt jedoch erst 2024 die Version 1.0. Es handelt sich um ein Befehlszeilentool, das eine statische Analyse einer Codebasis durchführt. Aus dieser Analyse können Änderungen übernommen werden. Ich schätze, ein gutes Beispiel hierfür wäre, wenn Ihre Codebasis voller array()-Aufrufe wäre, obwohl dies heute als alte Praxis gilt und jetzt durch die kurze Array-Syntax [] ersetzt wird.

Es ist mühsam, eine Codebasis durchzugehen, um dies zu ersetzen. Wir könnten ein einfaches Such- und Ersetzungstool verwenden, aber was wäre, wenn ein Array() in einer Zeichenfolge oder in einem Kommentar enthalten wäre, der nicht geändert werden sollte? Jetzt müssen wir jede Instanz überprüfen, die wir ersetzen.

Diese Art von Problem ist es, was Rector hervorragend beherrscht. Stattdessen ist Rector in der Lage, sich den Code anzusehen und definitiv zu wissen, ob es sich um ein Array handelt, das ersetzt werden muss.

Sie fragen sich vielleicht, dass PHP CS Fixer dies auch kann, was stimmt. Aber Rector hat PHPStan auch unter der Haube im Einsatz, um nicht nur die Syntax zu erkennen, sondern auch Typen zu analysieren. Dies bedeutet, dass Rector erkennen kann, wann eine Klasse eine bestimmte übergeordnete Klasse hat, wann eine Variable einen bestimmten Typ hat oder welchen Rückgabetyp eine Funktion erwartet. Dies gibt ihm einen weitaus größeren Spielraum für Massenänderungen an einer Codebasis.

So installieren Sie Rector PHP

Das mag für erfahrene PHP-Entwickler offensichtlich erscheinen, aber es gibt zwei primäre Möglichkeiten und es hängt wirklich davon ab, wie Sie Rector verwenden möchten.

Wenn Sie Rector als Teil der kontinuierlichen Integration verwenden möchten, ist es sinnvoll, Rector anders über Composer in Ihre Projekte zu installieren.

composer require --dev rector/rector
Nach dem Login kopieren

Aber wenn Sie mit Rector in einem oder mehreren Projekten experimentieren möchten, um Upgrades durchzuführen, ist es möglicherweise besser, Rector global zu installieren, indem Sie
verwenden

composer global require rector/rector
Nach dem Login kopieren

Welchen Schritt Sie auch wählen, der nächste Schritt besteht darin, eine Konfiguration im Stammverzeichnis eines Projekts zu erstellen und alle Ordner einzuschließen, die den PHP-Code enthalten, den Sie aktualisieren möchten. Dazu gehört natürlich nicht der Vendor-Ordner, da wir ihn nicht ändern wollen.

So könnte eine Konfiguration beispielsweise für ein Laravel-Projekt aussehen:

use Rector\Config\RectorConfig;
use Rector\Php71\Rector\List_\ListToArrayDestructRector;

return RectorConfig::configure()
    ->withPaths([__DIR__. '/config', __DIR__. '/src', __DIR__. '/tests', __DIR__. '/routes'])
    ->withImportNames(removeUnusedImports: true);
Nach dem Login kopieren

PHP Rector: Wie man es effektiv nutzt

Wie im letzten Abschnitt kann die Verwendung von Rector dadurch bestimmt werden, wie Sie es verwenden möchten. Der Rektor nimmt Änderungen durch die Auswahl der Regeln vor. Dies ist dasselbe wie PHP CS Fixer. Diese Regeln erkennen das Problem und versuchen dann, das Problem zu beheben, das sie lösen sollen.

Wenn wir Rector in einer kontinuierlichen Integrationsweise verwenden möchten, weil wir den gesamten Code bei der Entwicklung so optimal wie möglich nutzen möchten, verwenden wir möglicherweise nur einen bestimmten Satz von Regeln.

Rector verfügt über Regelwerke, die oft als Dead Code oder Code Quality bezeichnet werden und die Code entfernen bzw. verbessern und optimieren. Es ist von großem Vorteil, nur bei diesen Sets zu bleiben, da wir sicher sein können, dass sie die meiste Zeit funktionieren. Sie sollten sich jedoch unbedingt darüber im Klaren sein, dass die Art und Weise, wie Rector Code schreibt, niemals perfekt ist. Wenn Regeln geschrieben werden, decken sie oft die typischen Szenarien ab und übersehen möglicherweise einige Umstände, die in Ihrer Codebasis enthalten sind. Dies könnte zu fehlerhaftem Code führen.

Falls Sie Rector einsetzen möchten, sollten Sie unbedingt Tests für Ihre Bewerbung schreiben lassen. Ohne sie kann Rector leicht zur Einführung von Fehlern führen, die Sie erst dann entdecken, wenn es sich um ein Problem handelt.

Eine weitere Sache, die Sie bei der Verwendung von Rector berücksichtigen sollten, ist, dass Sie ein Linting-Tool wie PHP CS Fixer verwenden sollten. Rector berücksichtigt keine Leerzeichen, Leerzeichen und Zeilenumbrüche zwischen Methodenaufrufen und deren Argumenten usw. Die Verwendung eines Linting-Tools sollte die Codeformatierung auf dem erwarteten Standard halten, nachdem Rector seine Korrekturen angewendet hat.

Schritt-für-Schritt-Anleitung für Rector PHP

Jetzt haben wir Rector installiert und können es ausprobieren. Versuchen wir, eine Regel anzuwenden. Beginnen wir mit der Aktualisierung unserer zuvor erstellten Konfigurationsdatei.

use Rector\Config\RectorConfig;
use Rector\Php71\Rector\List_\ListToArrayDestructRector;

return RectorConfig::configure()
    ->withPaths([__DIR__. '/config', __DIR__. '/src', __DIR__. '/tests', __DIR__. '/routes'])
    ->withImportNames(removeUnusedImports: true)
    ->withRules([
        ListToArrayDestructRector::class,
    ]);
Nach dem Login kopieren

Im Fall dieser Konfiguration werden wir die Verwendung von Listen ersetzen, sodass wir stattdessen eine Array-Umstrukturierung verwenden. Wir erwarten folgende Änderungen:

-list($a, $b) = ['a', 'b'];
+[$a, $b] = ['a', 'b'];
Nach dem Login kopieren

Now we can test this config by performing a dry run of Rector.

rector --dry-run
Nach dem Login kopieren

If everything has been successful we should now see an output that contains a diff of all the changes to each file, with a list of the rules that made the changes. Our config only lists one rule so only one rule is applied but if more rules are added we’ll see a list of one or more here.

Mastering Code Refactoring: A Complete Guide to Using Rector PHP

This is then a great time to review the changes and make sure the rule is performing as expected. Once we’re happy we can run Rector again. Without the dry run flag, changes will be written to the files.

rector
Nach dem Login kopieren

After it’s completed we should run our favourite linting tool and then run our tests. That’s it. We’ve now used Rector.

Conclusion: Boosting Your PHP Development with Rector

Rector PHP is a powerful tool that can significantly enhance your PHP development workflow by automating code refactoring and ensuring your codebase remains clean and modern. By understanding what Rector PHP is, learning how to install it, and mastering how to use it effectively, you can leverage its capabilities to streamline code updates, improve code quality, and reduce the risk of code feeling like a “legacy” project. Whether you’re integrating Rector into your continuous integration pipeline or using it for large-scale codebase upgrades, Rector is an indispensable asset for any PHP developer looking to maintain a high standard of code excellence.

If you want to take you knowledge of Rector further I suggest going to https://getrector.com/.

I’m Peter Fox, a software developer in the UK who works with Laravel. Thank you for reading my article, I’ve got many more to read at https://articles.peterfox.me. I’m also now Sponsorable on GitHub. If you’d like to encourage me to write more articles like this please do consider dropping a small one-off donation.

Das obige ist der detaillierte Inhalt vonCode-Refactoring beherrschen: Eine vollständige Anleitung zur Verwendung von Rector PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!