Statische Code-Analyse (Part 2)

PHP-Code analysieren

Letzte Woche ging es um statische Code-Analyse in JavaScript. Das geht natürlich auch in PHP, wird aber leider nicht direkt durch PhpStorm mitgeliefert.

Das Standard-Tool für statische Code-Analyse in PHP ist PhpStan. PhpStan lässt sich wunderbar zum Beispiel in CommitHooks oder in den CI-Server Deiner Wahl einbauen.

Diese Woche machen wir uns es erst mal einfach, und installieren ein passendes Plugin:

Das Plugin „Php Inspections“ gibt es in einer kostenlosen/freien Variante, und in einer bezahlten Variante mit Support (EA Ultimate).

Und prompt finden sich interessante Dinge:

scandir sortiert standardmäßig die gefundenen Dateien. Oft braucht man das gar nicht, und das kostet bei großen Verzeichnissen unnötig Zeit, vor allem wenn das Directory-Listing bereits im Cache steht und schnell da ist. Hier sollte man sich also Gedanken darüber machen, ob man das wirklich braucht, und dann entsprechend als zweiten Parameter SCANDIR_SORT_NONE angeben. Oder eben Ascending/Descending.

Ein netter Bug in einem Skript fiel mir dadurch auch auf:

Irgendwie war der Aufruf in die foreach-Schleife gerutscht. Die Codeanalyse sieht: Der macht gar nichts mit den Transaktionen, über die iteriert wird. Der Aufruf wird somit viel zu oft gemacht!

Auch das macht Sinn – soll in_array hier mit == oder mit === vergleichen?

Total sinnvoll – hier kann man einfach -4 nutzen!

 

Automatisch korrigieren

Das wirklich Coole ist, viele Inspections haben einen AutoFix, also <Alt>-<Enter>, <Enter>, und der Code ist gefixt. Wie man das nicht nur an einer Stelle, sondern denselben Bug an vielen Stellen ändert, dazu komme ich in den nächsten Wochen dann nochmal…

About the author

Comments

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.