PSR-1: Basic Coding Standard

Nein, in diesem Beitrag geht es nicht um die PSR-1 aus PIXEL GUN 3D, hier geht es um Coding Standards und zwar den der PHP Framework Interop Group, wie man standardkonformen PHP-Code schreibt. Von dieser Gruppe wurden mehrere Spezifikationen zu PHP verfasst. Die PSR-1, um die es hier maßgeblich geht, beschäftigt sich mit allgemeinen Vorgaben zu Inhalt/Struktur einer PHP-Datei und Namensgebungen.

Die PSR-1 (PHP Standard Recommendation 1) befasst sich, wie der Name „Basic Coding Standard“ schon sagt, mit dem allgemeinen, grundlegendem Programmierstil. Also zum Beispiel den Tags, der Namensgebung und dem zu verwendenden Zeichensatz.

Allgemeines


PHP-Tags

Damit der Code standardkonform ist, muss der PHP-Tag ausgeschrieben werden <?php ?>. Alternativ kann man die Kurzform des echo-Tags benutzen <?= ?>, andere Varianten sollen nicht genutzt werden.

Zeichensatz

Es soll nur UTF-8 ohne BOM verwendet werden.

Inhalt

Eine PHP-Datei darf nicht gleichzeitig Deklarationen und sogenannte „side-effects“ enthalten.

Zu den Side-Effects gehören unter anderem:

  • Ausgaben
  • Auswerfen von Ausnahmen oder Fehlermeldungen
  • Externe Verbindungen herstellen
  • Explizites Aufrufen von „require“ und „include“
  • Änderungen von statischen oder globalen Variablen
  • Ein- oder Auslesen einer Datei



Namespaces und Klassen

Namespaces müssen einer der beiden „autoloading“ Richtlinien (PSR-0 oder PSR-4) entsprechen. Diese enthalten unter anderem Spezifikationen zu der Vergabe von vollqualifizierten Klassennamen. Ziel ist, dass der Code bei Bedarf einheitlich und automatisch nachgeladen werden kann.

Namensgebung

  • Klassennamen müssen nach der StudlyCaps Schreibweise vergeben werden
  • Konstantennamen müssen komplett groß geschrieben werden. Einzelne Wörter werden dabei mit Unterstrichen voneinander getrennt
  • Methodennamen müssen nach der camelCase() Schreibweise vergeben werden
  • Attributnamen müssen nach keiner bestimmten Konvention geschrieben werden. Es sollte allerdings darauf geachtet werden, dass innerhalb eines Bereichs eine einheitliche Namensgebung verwendet wird.



Weitere Informationen gibt es auf der Seite der PHP Framework
Interop Group: www.php-fig.org