Schlagwort-Archive: Coding Standards

PHP: Coding Standards

In vielen PHP Projekten sieht es aus wie Kraut und Rüben. Da werden die Variablen nach Lust, Laune und Tagesform benannt, die Benennung der einzelnen PHP-Dateien und der darin befindlichen Code-Teile erfolgt keinem erkennbaren Muster und die Notation der einzelnen Klassen, Methoden und Funktionen wechselt wild zwischen verschiedenen Groß- und Kleinschreibungen sowie unterschiedlichen Bezeichnern, gemixt aus Deutsch und Englisch.

Je größer ein solch organisch gewachsenes Projekt wird, desto mehr und mehr Zeit verschlingt es alleine bei der Wartung und Pflege. Diese Richtlinien helfen bei der besseren Zusammenarbeit von mehreren Entwickler am gleichen Projekt. Auch die Zeit, die ein neuer Entwickler benötigt, um sich ein-, anstatt bereits produktiv mitzuarbeiten, wird hierdurch verringert. Zudem erleichtert eine einheitliche Code- und Projekt-Struktur die Entwicklung und Nutzung von auch in anderen Projekten nutzbaren Komponenten, wie sie heutzutage in Frameworks wie Symfony oder dem Zend Framework üblich sind.

Aus Gründen wie den oben genannten hat die PHP-FIG (PHP Framework Interop Group) in den Standards PSR1 und PSR2 verbindliche Coding Standards definiert, um solche Probleme von vornherein zu vermeiden.

PSR1: Basic Coding Standard

  1. Dateien dürfen nur den „<?php“ oder den „<?=“ Tag verwenden.
  2. PHP-Dateien dürfen nur UTF-8 ohne BOM (Byte Order Mark) verwenden.
  3. Dateien sollten entweder Klassen, Funktionen, Konstanten, etc. definieren oder einen Effekt – wie eine Ausgabe generieren oder Einstellungen der php.ini zu überschreiben – haben. Sie sollten aber nicht Beides gleichzeitig machen.
  4. Namespaces und Klassen müssen dem „autoloading“-PSR-Standard folgen.
    (Definiert in PSR-0 und PSR-4)
  5. Klassennamen müssen mit einem Großbuchstaben beginnen und dürfen nur im StudlyCaps-Format benannt werden.
  6. Konstanten in Klassen müssen komplett groß geschrieben werden, als Seperator ist nur der Unterstrich erlaubt.
  7. Methoden in Klassen dürfen nur im Camelcase-Format bezeichnet werden.

PSR2: Coding Style Guide

Dieser deutlich umfangreichere Standard erweitert den vorherigen Standard PSR1.

  1. Die Vorgaben aus dem PSR1: Basic Coding Standard müssen eingehalten werden.
  2. Für Codeeinrückungen dürfen keine Tabs, sondern immer nur 4 Leerzeichen verwendet werden.
  3. Es darf kein festes Limit für Zeilenlängen geben. Das Soft-Limit muss bei 120 Zeichen liegen und Zeilen sollten nicht mehr als 80 Zeichen haben.
  4. Es muss jeweils eine Leerzeile nach der Namespace-Deklaration und nach dem Block der use-Deklarationen eingefügt werden.
  5. Die öffnende, geschweifte Klammer einer Klasse muss in der Zeile nach dem Klassennamen stehen und die schließende, geschweifte Klammer muss in der nächsten Zeile nach dem Klassenkörper stehen.
  6. Die öffnende, geschweifte Klammer einer Methode muss in der Zeile nach dem Methodennamen stehen und die schließende, geschweifte Klammer muss in der nächsten Zeile nach dem Methodenkörper stehen.
  7. Die Sichtbarkeit muss für alle Eigenschaften und Methoden deklariert werden. abstrakt und final muss vor der Sichtbarkeit; static muss nach der Sichtbarkeit deklariert werden.
  8. Schlüsselwörter von Kontrollstrukturen müssen von einem Leerzeichen gefolgt werden. Es dürfen jedoch keine Leerzeichen nach Methoden- oder Funktionsaufrufen verwendet werden.

  9. Bei Kontrollstrukturen muss die öffnende, geschweifte Klammer in der selben Zeile und die schließende, geschweifte Klammer muss in der nächsten Zeile nach dem Strukturkörper stehen.
  10. Öffnende Klammern für Argumente von Kontrollstrukturen dürfen nicht von Leerzeichen gefolgt werden und vor der schließenden Klammer darf ebenfalls kein Leerzeichen stehen.

Quellen:
[1] PSR-1: Basic Coding Standard
[2] PSR2: Coding Style Guide