✅ WEB- und WordPress-Nachrichten, Themen, Plugins. Hier teilen wir Tipps und beste Website-Lösungen.

Besseren WordPress-Code schreiben: PHPStan

7

Im letzten Beitrag dieser Serie (der zugegebenermaßen schon einige Zeit zurückliegt) habe ich ausführlich über Composer und seine Sperrdatei gesprochen.

Ich empfehle, die beiden vorherigen Artikel zu lesen, da Composer schließlich eine Rolle in diesem Material spielen wird, das dieser und zukünftige Posts teilen werden. Aber wenn Sie sich entscheiden, sie nicht nachzuholen (oder bereits mit Composer vertraut sind), dann ist der Kern der vorherigen Posts jeweils wie folgt:

Ich empfehle nicht, das Herstellerverzeichnis in Ihr Repository einzuchecken. Das kann später zu einem riesigen Verzeichnis werden und den gesamten Zweck von Composer untergraben.

Komponist

Das Ziel ist sicherzustellen, dass jeder dieselbe Version der Abhängigkeiten des Projekts ausführt – nicht ältere Versionen, nicht neuere Versionen – sondern dieselbe Version.

Die Composer Lock-Datei

Abgesehen davon gibt es zahlreiche Abhängigkeiten oder Pakete, die wir installieren können, um sicherzustellen, dass wir den höchstmöglichen Qualitätscode schreiben.

Sicher, einige davon mögen in Form von so etwas wie Codierungsstandards vorliegen, aber das sind wirklich mehr Regeln als Elemente zum Schreiben von hochwertigem Code (obwohl ich nicht denke, dass sie aus der Diskussion ausgeschlossen werden sollten – einfach weggelassen zu dieser Zeit 🙃).

Zurück zu den fraglichen Tools: Welche Tools helfen beim Schreiben von hochwertigem WordPress-Code? Ich werde ein paar meiner Favoriten teilen und darüber sprechen, wie wir sie alle gegen eine Codebasis laufen lassen können.

Werfen wir zunächst einen Blick auf die statische Analyse mit PHPStan.

Besserer WordPress-Code mit PHPStan

Was ist überhaupt statische Analyse?

Zunächst ein paar Worte zur statischen Analyse. Nämlich, was ist es? Es ist ein Schluck, zum einen:

Statische Codeanalyse (auch bekannt als Quellcodeanalyse) wird normalerweise als Teil einer Codeüberprüfung (auch bekannt als White-Box-Test) durchgeführt und wird in der Implementierungsphase eines Sicherheitsentwicklungslebenszyklus (SDL) durchgeführt.

Statische Codeanalyse bezieht sich im Allgemeinen auf das Ausführen von Tools zur statischen Codeanalyse, die versuchen, mögliche Schwachstellen in „statischem” (nicht ausgeführtem) Quellcode mithilfe von Techniken wie Taint-Analyse und Datenflussanalyse aufzuzeigen.

Statische Codeanalyse über OWASP

Stellen Sie sich das so vor: Es ist eine Möglichkeit, ein Programm auf potenzielle Fehler zu analysieren, die Sie möglicherweise nicht sehen, wenn Sie an der Codebasis arbeiten.

Das heißt, es gibt Probleme, Fehler, Sicherheitsprobleme, die vorhanden sein können, die Sie aber aus einer Reihe von Gründen nicht erkennen können (der geringste ist, dass Sie zu nahe am Code sind).

Im Laufe der Zeit hat die Entwickler-Community jedoch gelernt, Code zu analysieren, Regelsätze zu generieren und Tools zu entwickeln, die dabei helfen, genau all das oben Genannte zu finden.

Statische Analyse von WordPress-zentriertem Code

Und hier kommt PHPStan ins Spiel.

Besseren WordPress-Code schreiben: PHPStan

Wie bereits erwähnt, besteht das Ziel des Pakets darin, Fehler oder Fehler in Ihrem Code zu identifizieren, bevor Ihr Code von jemand anderem als Entwicklern verwendet wird, sie hervorzuheben und Ihnen die Möglichkeit zu geben, sie zu beheben.

Da Tools wie dieses eine Codebasis untersuchen (im Gegensatz zum Ausführen des Codes), ist es nicht immer möglich, ein klares Bild zu erhalten. Dies bedeutet, dass wir falsch positive Ergebnisse erhalten können.

Aber dazu gleich mehr.

Wenn Sie daran interessiert sind, mit dem Ausführen von PHPStan gegen Ihre Codebasis zu beginnen, ist dies ganz einfach. Denken Sie nach der Installation einfach daran, es so zu konfigurieren, dass es nicht im vendorVerzeichnis oder beispielsweise im WordPress-Kern nachschaut.

Lassen Sie es stattdessen Ihren Code untersuchen.

Installation von PHPStan

Fügen Sie zunächst in Ihrer composer.jsonDatei die folgende Zeile im require-devAbschnitt hinzu:

"phpstan/phpstan": "^0.11.12"

Führen Sie dann composer updateIhr Terminal aus.

Sobald es installiert wurde, können Sie es für eine einzelne Datei, ein Verzeichnis oder eine Reihe von Verzeichnissen ausführen. Wenn Sie meine vorherigen Posts zur Code-Organisation gelesen haben, dann wissen Sie, dass ich ein Fan davon bin, den Großteil des Projektquellcodes zu behalten src, damit Sie möglicherweise so etwas ausführen:

$ vendor/bin/phpstan analyse src

Dadurch wird eine Ausgabe basierend auf dem generiert, was das Dienstprogramm findet.

Erinnern Sie sich noch, als ich sagte, dass es Dinge wie Fehlalarme finden kann? Hier ist ein detaillierterer Überblick über das, was Sie sehen können:

  • Zusätzliche Argumente, die an Funktionen übergeben werden (z. B. die Funktion erfordert zwei Argumente, der Code übergibt drei)
  • Zusätzliche Argumente, die an print/sprintf-Funktionen übergeben werden (zB format string enthält einen Platzhalter, der Code übergibt zwei zu ersetzende Werte)
  • Offensichtliche Fehler in totem Code
  • Magisches Verhalten, das definiert werden muss.

Alle oben genannten direkt aus dem Repository.

Hier können Regelebenen den entscheidenden Unterschied machen, obwohl es möglicherweise ein wenig Feintuning erfordert, um sie auf eine Ebene zu bringen, die genau richtig für Ihr Team oder Ihr Projekt ist.

Was ist mit der Analyse für WordPress?

Viktor Szépe hat diese Ressource mit mir geteilt (eigentlich etwas, das er verfasst hat) und ich denke, es ist etwas Relevantes und Nützliches. Die Idee des Pakets ist einfach:

Es löst alle Probleme, die ich beim Analysieren von Code für WordPress hatte.

Nicht schlecht, oder?

Analysieren Sie Ihren Code

Unabhängig von Ihrem Projekt, Ihrer Codeorganisation oder auf welcher Ebene Sie dieses spezielle Dienstprogramm ausführen, geht es immer darum, das Qualitätsniveau unseres WordPress-Codes zu verbessern.

Dies als Composer-Paket zu installieren und dann für Ihr srcVerzeichnis auszuführen, ist ein Schritt in die richtige Richtung.

Wie bereits erwähnt, werde ich einige andere Tools vorstellen und dann erläutern, wie sie alle auf einer Codebasis ausgeführt werden, bevor der Code in ein Repository übertragen wird.

Notiz

Wenn Sie beim Versuch, das Paket einzurichten, ein Problem haben, hat mich Dave Mackey mit einem ähnlichen Problem und seiner Lösung kontaktiert .

Aufnahmequelle: tommcfarlin.com

Diese Website verwendet Cookies, um Ihre Erfahrung zu verbessern. Wir gehen davon aus, dass Sie damit einverstanden sind, Sie können sich jedoch abmelden, wenn Sie möchten. Annehmen Weiterlesen