- GitHub - rectorphp/rector: Instant Upgrades and Automated Refactoring of any PHP 5.3+ code
- Instant Upgrades and Automated Refactoring of any PHP 5.3+ code - rectorphp/rector
Dies ist eine KI-übersetzte Version.
Zusammenfassung des Beitrags durch durumis AI
- Dieser Artikel zeigt, wie man das PHP-Versions-Upgrade-Tool Rector verwendet, um beispielsweise PHP 5.3-Code auf PHP 7.4 zu migrieren.
- Nach der Installation von Composer wird Rector im Projekt installiert und über die Konfigurationsdatei rector.php das zu aktualisierende Code und die PHP-Version angegeben.
- Durch die Definition von Anpassungsregeln und deren Ausführung wird der Code automatisch angepasst. Die Änderungen werden mit Git verwaltet, um ein sicheres Upgrade zu gewährleisten.
Während ich mir eine Website des koreanischen PHP-CMS GNU Board 5 angesehen habe, bin ich auf einige Beiträge gestoßen, in denen die Schwierigkeiten nach einem PHP-Versionsupgrade aufgrund von nicht mehr unterstützten Grammatiken und Versionen geschildert wurden.
Bei der Suche danach...
fand ich auf Reddit, dass ein Tool namens Rector die Migration unterstützen kann. Daher möchte ich Ihnen die Verwendung dieses Tools vorstellen.
Seit der Veröffentlichung von PHP 7.0 im Jahr 2015 gibt es PHP-Migrations-Tools wie PHP CS Fixer und Rector.
Rector scheint etwas benutzerfreundlicher zu sein.
Rector (Aussprache: Rektör) überprüft den Code von PHP 5.3 bis 8.2 auf Grammatikfehler und korrigiert ihn entsprechend der gewünschten Version.
Leider ist Rector ein statischer Analysator und kann Laufzeitfehler nicht erkennen.
Für Rector wird Composer (PHP-Paket-Manager) benötigt.
1. Installieren Sie Composer.
2. Installieren Sie Rector im aktuellen Projektordner.
3. Erstellen Sie die Konfigurationsdatei rector.php.
rector.php Konfiguration
Um das Verständnis zu erleichtern, definieren wir eine Situation.
Nehmen wir an, der Quellcode ist in PHP 5.3 geschrieben und das Ziel-Upgrade ist PHP 7.4.
Die Rector-Version ist 1.0.3.
RectorConfig::config() legt den Quellcode-Ordner und die PHP-Version fest.
Die Funktion withPhpSets konfiguriert die PHP-Funktionen, die aktualisiert werden sollen.
Wenn die aktuell ausgeführte PHP-Version PHP 8.0 ist,
kann man die PHP-Version so auf `true` setzen.
Wenn die ausgeführte PHP-Version jedoch PHP 7.4 oder niedriger ist,
kann die Syntax mit benannten Parametern in Funktionen nicht verwendet werden. Daher muss `true` für die gewünschte Version gesetzt werden.
Rector unterstützt PHP 8.3. Um PHP 7.4 festzulegen, verwenden Sie folgenden Code:
->withPaths([
__DIR__ , // Das Verzeichnis, in dem sich rector.php befindet.
])
Hier werden Regeln und Ordner angegeben, die nicht angewendet werden sollen.
Ordner werden mit '/Ordnername/*' angegeben.
Dateien werden mit 'Dateiname' angegeben.
Ich habe die Regel "SensitiveConstantNameRector" hinzugefügt.
Rector erkennt in PHP-Arrays den nicht definierten Index nicht und interpretiert ihn fälschlicherweise als Konstante, wodurch er versucht, den Code unnötig zu ändern. Daher wird er in den Ausschlusskriterien hinzugefügt.
Diese Regeln beziehen sich auf den Code-Stil und werden daher ausgeschlossen.
Ausführung
Es gibt zwei Möglichkeiten.
Dieser Befehl gibt nur die zu ändernden Codes in der Konsole aus.
Bei großen Quellcodemengen wird viel Arbeitsspeicher benötigt. Daher sollten Sie die Option `--memory-limit=2G` verwenden, um den Arbeitsspeicher zuzuweisen.
Dieser Befehl ändert den Quellcode direkt.
Es gibt viele Optionen, daher kann es sein, dass unerwünschte Optionen angewendet werden. Daher sollten Sie Git zur Überprüfung verwenden.