Ich habe meinen eigenen Coding Standard veröffentlicht
Veröffentlicht: – Kommentar hinterlassen
Kurz vor Weihnachten habe ich meine eigenen Coding Standards veröffentlicht und bereits im ersten Projekt implementiert. Sie sorgen nicht nur für einen einheitlichen Programmierstil in den Projekten von Epiphyt, sondern erzwingen auch die Verwendung bestimmter (Sicherheits-)Funktionen wo notwendig.
Warum einen eigenen Standard?
Es gibt mehrere Coding-Standards, von denen der wichtigste die WordPress Coding Standards sind. Leider lassen sie oft zu viel Raum für einen eigenen Code-Stil. Um die Konsistenz des Codes zu erhöhen, habe ich einige andere Coding-Standards integriert und auch eigene Sniffs erstellt (Sniffs sind einzelne Regeln für einen bestimmten Bereich des Codes, z. B. nur []
als Array-Notation zuzulassen).
Welche Standards sind enthalten?
Zum größten Teil gelten die WordPress Coding Standards (mit einigen Ausnahmen). Zusätzlich, um strenger zu sein, wird der Neutron PHP Standard von Automattic verwendet. Der dritte Teil ist ein großer Teil des Slevomat Coding Standards, der viele Regeln abdeckt, die kein anderer Standard enthält. Bei all diesen Standards gibt es bestimmte Ausnahmen, aber wenn du bereits einen der oben genannten Standards verwendet hast, wird er dir sehr vertraut sein.
Zuletzt gibt es einige individuellen Regeln, die nur Teil des Epiphyt Coding Standards sind:
- Erzwingen eines korrekten tabulatorgetrennten Formats für PHPDocs
- Erzwingt ein Leerzeichen nach jedem Sternchen in PHPDocs
- Erzwingt
else if
anstelle vonelseif
- Erzwingt eine Leerzeile vor
continue
undreturn
- Erzwingt die gleiche Einrückung von Leerzeilen wie die Zeile davor
- Erzwingt keine Leerzeile nach einem Kommentar
- Erzwingt kein Leerzeichen vor einem Zeilenumbruch
- Erzwingt nur eine einzige Leerzeile
PHP-Kompatibilität
Der Epiphyt Coding Standard erfordert derzeit PHP 8.0. Du kannst ihn aber auch für Projekte verwenden, die ältere PHP-Versionen unterstützen. Das Hauptkompatibilitätsproblem für PHP 7.4 ist die Erzwingung des nativen Type Hinting. Das kannst du deaktivieren, indem du dies in deinem Regelsatz hinzufügst:
<rule ref="EpiphytCodingStandard">
<exclude name="SlevomatCodingStandard.TypeHints.DeclareStrictTypes.DeclareStrictTypesMissing"/>
</rule>
Code-Sprache: HTML, XML (xml)
Den Epiphyt Coding Standard verwenden
Du findest den Coding Standard auf GitHub:
Um ihn zu verwenden, klone das Repository und führe composer install
aus. Füge dann den Pfad zum Epiphyt Coding Standard zu deiner PHPCS-Konfiguration hinzu, wie es in der Readme des Projekts steht.
Das erste Projekt, das diesen Coding Standard verwendet, ist Form Block. Du findest dessen Konfiguration hier:
https://github.com/epiphyt/form-block/blob/v1.5.1/.phpcs.xml