Neben vielen weiteren hat PHP ein in meinen Augen besonders nerviges Manko: Es stellt keine Guidelines dafür bereit, wie der geschriebene Code formatiert werden soll. Für einen Überblick habe ich vor längerer Zeit schon einmal die Vorgaben großer Projekte verglichen. Viel interessanter scheint jedoch der Ansatz der PHP Framework Interop Group zu sein, die ein ganzes Bündel von Empfehlungen für Webentwickler geschnürt hat. Viele bekannte Projekte wie Zend Framework, PEAR, phpBB, Joomla und Drupal sind daran beteiligt.
Auf der Projektseite werden drei zentrale Dokumente bereitgestellt, die durch GitHub versioniert werden und verschiedenartige Vorgaben liefern.
PSR-0: Autoloading Standard
Dieses Dokument beschreibt, wie Namespaces und Klassennamen zu wählen sind. Anhand dieser Vorgaben lässt sich ein Autoloader definieren, der automatisch alle benötigten Klassen nachlädt.
PSR-1: Basic Coding Standard
In diesem Schriftstück finden sich die grundlegenden Coding-Standards. Eine Datei muss UTF-8-kodiert sein, PHP-Bereiche werden durch <?php oder <?= eingeleitet. Für zentrale Konzepte gibt es hier Vorgaben zur Schreibweise:
ClassName
CONSTANT_NAME
methodName
Zudem wird festgelegt, dass eine Datei entweder Symbole (wie Klassen, Funktionen) definiert oder Seiteneffekte (Ausgaben erzeugen u. ä.) hat – niemals jedoch beides.
PSR-2: Coding Style Guide
PSR-2 geht ins Formatierungsdetail und hält fest beispielsweise fest, wie Klammern auszurichten sind:
ClassName
{
function methodName()
{
if (true) {
functionName();
} else {
functionName($arg1, $arg2);
}
}
}
Zudem wird genau beschrieben, was etwa passiert, wenn z.B. eine Methodendefinition die maximale Zeilenlänge von 120 überschreitet.
ClassName
{
function tooLongMethodName(
$one,
$argument,
$per,
$line
) {
// ...
}
}
Klar formuliert und umfangreich
Die von mir angesprochenen Details sind lediglich Ausschnitte. Das Projekt scheint noch in Bewegung zu sein, dennoch wirken die Vorgaben sehr durchdacht und auch für die meisten Spezialfälle gerüstet. Durch die vielen Beispiele lässt sich der Stil auch ohne langes Lesen einfach adaptieren. Jeder PHP-Entwickler sollte mal einen Blick darauf werfen.
Danke für den Tiipp. Sowas such ich schon seit längerem.