Im April hatten wir euch unser Projekt modernizeYourPHP vorgestellt – ein Sammelsurium von Tipps und Best Practices, Tools und vielem mehr, das euch bei der Migration eines PHP-Projekts auf eine neue Version helfen kann. So weit, so gut.
Während wir uns im ersten Post mit der Dockerisierung von (Legacy-)PHP-Applikationen auseinandergesetzt haben, wollen wir in diesem Artikel einen Blick auf verschiedene Tools werfen und euch unsere Einschätzung dazu geben.
Fünf Tools, die bei der Migration helfen sollen
Im Zuge unserer Recherche haben wir uns fünf Tools genauer angesehen: Rector, PHPDeprecationDetector, Intellij PHP Inspections, PHPStan mit Deprecation-Regelsatz und den Codesniffer mit PHPCompatibility-Regelsatz. Ohne euch spoilern zu wollen, sind uns dabei doch recht viele Dinge aufgefallen, die am Ende den Gesamteindruck der jeweiligen Tools getrübt haben.
Dennoch können wir euch beruhigen: Es gibt einen eindeutigen Gewinner!
Unsere Matrix
In unserer Vergleichsmatrix haben wir die Tools auf verschiedene Aspekte hin untersucht. Neben dem Nutzen für Migrationsprojekte – immerhin ist das das Ziel unseres Vorhabens – haben wir uns auch mit der Installation bzw. der Komplexität der Konfiguration beschäftigt.
Des Weiteren haben wir uns angesehen, wie es um die Aktivität in den Projekten steht (sprich: wird das Tool aktiv weiterentwickelt?), ob es PHP-8-Support bietet und in welchem Format die Reports ausgegeben werden. Und natürlich gilt: ein Autofixing von Problemen gibt einen Bonuspunkt.
Ohne weitere Worte verlieren zu wollen, präsentieren wir euch im Folgenden unsere Ergebnisse.
Tool | Rector | PHPDeprecationDetector | IntelliJ PHP Inspections | PHPStan mit PHPStan-Deprecation-Regelsatz | Codesniffer mit PHPCompatibility-Regelsatz |
---|---|---|---|---|---|
Nutzen für Migrationsprojekte |
|
|
|
|
|
Konfiguration |
|
|
|
|
|
Projektaktivität |
|
|
|
|
|
Autofixing | ✓ | ✗ | teilweise | ✗ (eigentlich vorhanden, aber nicht für die Deprecation Rules) | teilweise |
PHP-8-Support | ✓ | ✗ | ✓ | ✓ | ✓ |
Reportformat |
|
|
|
|
|
Kommentare | Unser Test wurde durch einen kritischen Bug in Master aufgehalten, der nur im devmaster gefixt war. | – | – | – | – |
Fazit | ★★☆☆☆ Ein Tool das viel verspricht, viel leisten kann, aber noch einige Kinderkrankheiten hat. |
★★★★☆ Verspricht nicht zu viel, aber was es verspricht hält es. Aktuell fehlender PHP8 Suport ist ein Manko. |
★★★★☆ Die UX der Konfiguration ist verbesserungsfähig, aber die gute Integration ermöglicht in absehbarer Zeit produktives Arbeiten. |
★★☆☆☆ Prüft leider nur auf @deprecated -Tags, daher nur eingeschränkt nützlich. |
★★★★★ Tut was es soll. Installation etwas holprig, hat viele sinnvolle Dinge gefunden. |
Wenn ihr selbst Erfahrungen mit diesen oder anderen Tools habt, lasst es uns gerne wissen.
Schreibe einen Kommentar