Kurs Inhalt

Remote PHP-Training mit PHPStan, Codestandard und Captain Hook

Statische Code Analyse als Inhouse PHP-Schulung

Mit statischer Codeanalyse zuverlässige Software im Team entwickeln

Statische Codeanalyse hat viele Vorteile gegenüber anderen Testverfahren, wie beispielsweise Acceptance-Tests oder Integration-Tests mit Codeception. Als PHP-Entwickler braucht man hier kein voll funktionierendes Environment. Das kann ganz einfach lokal mit der Kommandozeile auf bestimmte Verzeichnisse oder Dateien ausgeführt werden. Die statische Codeanalyse mit PHPStan ist extrem schnell und sehr zuverlässig.

PHPStan im Einsatz für PHP-Projekte

PHPStan findet sehr zuverlässig und schnell Fehler und mögliche Fehlerquellen im PHP-Code. Dabei geht die Analyse deutlich über ein Syntax Linting hinaus. Es werden fehlende Dependencies aus Composer gefunden und auch alle Typen von eingehenden und ausgehenden Parametern validiert. Gerade die PHPStan Level 1 und 2 eignen sich hier schon sehr gut, damit PHP-Applikationen mit einer Art Basistesting abgedeckt werden kann. Wenn man aktuelle Legacy Projekte auf das Level 2 bringt, dann hat man schon sehr viel für die Softwarequalität in seinem PHP-Projekt erreicht. Insgesamt stehen hier 5 Level zur Verfügung.

Erste Schritte für professionelle und nachhaltige Entwicklung als PHP-Training für PHP-Projekte

Hat man die PHP-Applikation erfolgreich mit PHPStan als Tests für eine statische Codeanalyse abgedeckt kann man anfangen weitere Schritte gemeinsam als Team für eine bessere Softwarequalität zu gehen. Am Anfang steht hier ein Codestandard. Dieser definiert in einem Ruleset, wie der Code geschrieben werden soll. Hier kommt man zu einem einheitlichen Ergebnis, was beispielsweise das Setzen der Klammern oder Einrückungen und Schreibweisen von Arrays angeht. Ein PHP-Codestandard kann dabei sogar automatisch viele  fehlende oder falsche Formatierungen beheben. In Kombination mit PHPStan ist der PHP-Code-Beautifier ein tolles Werkzeug.

PHP-Codestandard als Basis für ein besseres Teamwork

Je nach Größe und Zustand des eigenen PHP-Projekts kann es allerdings sein, dass man nicht alle Regeln eines PHP-Codestanderds, wie PSR-2, umsetzen kann. An dieser Stelle macht ein eigenes Regelwerk Sinn. Hier kann man Regeln aus dem Ruleset anpassen, oder auch aus anderen Standards hinzufügen. Das ist eine gute Möglichkeit sich als Team auf Standards zu einigen ohne in ein Regelwerk gezwungen zu werden. Wir schauen uns hier ganz praktische Beispiele an und wie man diese am besten einrichtet und in den Projekten einsetzt.

Captain Hook - AAAARRRGGGHHHH - Ein Tool das PHP-Entwickler einfach glücklich macht

Da die statische Code Analyse nur wenige Millisekunden dauert kann man sie automatisch mit einem GitHook vor seinem eigenen Commit ausführen. Dadurch erhält der Entwickler in extrem kurzer Zeit Feedback zu seinem Code und bekommt das nicht erst aus einer Build Pipeline nachdem länger andauernde Prozesse angelaufen sind. Das beschleunigt den eigenen Entwicklungsprozess extrem. Mit dem Open Source Projekt Captain Hook sind GitHooks sehr schnell eingerichtet und können auch über die Versionskontrolle Git im Projekt direkt abgebildet werden. So brauchen Entwickler gar keine weiteren Schritte auszuführen, damit sie das direkt einsetzen können. 

Wir hatten jetzt hier zwei Tage eine ziemlich geile Schulung beim Roland
Wir haben die Basis für Codeception und unsere zukünftigen GitLab Pipelines gelernt. Das geile war das wir das direkt im eigenen Projekt gemacht haben und alle direkt mit der Funktastatur mitgemacht haben.
Jan Rexer - Entwickler und Projektmanagement (RHEINPFALZ)
Ablaufplan
Inhalt Art
Inhouse PHP-Training als Gruppenschulung mit Captain Hook und PHPStan
Statische Code Analyse und Softwarequalität in PHP-Projekten Theorie
Ziele von guter Software und einem agilen Entwicklungsprozess Theorie
PHPStan für die statische Codeanalyse und Testbasis Theorie
Einführung in PHP Codestandards, Codesniffer Theorie
PHPStan im praktischen Einsatz Level 1 bis Level 3 Team
Refactoring von Legacy Code mit dem PSR-2 Codestandard Team
Prehooks mit Captain Hook für effektive Softwareentwicklung Team
GitLab Pipeline mit Continuous Delivery Workflow Team