PHP Coding-Guidelines im Vergleich

Eine wesentliche Sache, die mich an PHP stört, ist das stark zerklüftete Bild, welches die abertausenden Code-Schnipsel im Netz abgeben. Ich weiß nicht warum, leider aber konnte sich nie eine einheitliche Formatierung für PHP durchsetzen. Während es bei anderen Sprachen wir Java kaum eine Diskussion gibt und Editoren wie Eclipse sogar per Shortcut Strg+Shift+f alles uniformieren, wirkt PHP wie eine Mischung aus allem, was es so gibt: Als Defacto-Standard für Webserver hat jeder Entwickler dank der mangelnden Vorgaben die Schreibweisen seiner Lieblingssprache übernommen. Um zumindest für sich selbst eine einheitliche Lösung zu finden, habe hier mal Ausschnitte dreier Coding-Standards populärer PHP-Projekte zusammengetragen. Für eine Entscheidung sollte dies reichen, detailliertere Beschreibungen findet man anschließend in den Guidelines des jeweiligen Projektes.

Zend Framework

Variablennamen $someVar
Klassennamen SuperClass
Methodennamen callMethod()
Kontrollstrukturen
if ($foo == $bar) {
	// ...
} else {
	// ...
}
Funktionsaufruf
call($foo, $bar)
Funktionsdefinition
function myFunction($arg1, $arg2 = '')
{
	// ...
}
Klassendefinition
class SuperClass
{
	function __construct()
	{
		// ...
	}
}
Guidelines Zend Framework: Code Stil

Pear

Variablennamen $some_var
Klassennamen Super_Class
Methodennamen callMethod()
Zeileneinzug 4 Leerzeichen
Kontrollstrukturen
if ($foo == $bar) {
    // ...
} else {
    // ...
}
Funktionsaufruf
call($foo, $bar);
Funktionsdefinition
function myFunction($arg1, $arg2 = '')
{
    // ...
}
Klassendefinition
class Super_Class
{
    // ...
}
Guidelines Pear Coding Standards

Code-Igniter

Variablennamen $some_var
Klassennamen Super_class
Methodennamen call_method()
Kontrollstrukturen
if ($foo == $bar)
{
	// ...
}
else
{
	// ...
}
Funktionsaufruf
call($foo, $bar)
Funktionsdefinition
function my_function($arg1, $arg2 = "")
{
	// ...
}
Klassendefinition
class Super_class {

	function __construct()
	{

	}
}
Guidelines CodeIgniter User Guide Version 2.0.2

Beispielquellen

Zend Framework
Code Stil
Pear
Pear Coding Standards
CodeIgniter
CodeIgniter User Guide Version 2.0.2

5 Kommentare

  1. Hm, weiß nicht, find die alle nicht so doll. Zend ist okay, aber ich mag das Enter vor geschweiften Klammern nicht. Irgendwie stecke ich zu tief in Java.

    Was findest du denn?

  2. danke für diesen Vergleich! Eigentlich sind alle ein bisschen komisch. Wiese kommt bei Funktionen und Klassen eine Zeilenumbruch vor{ und bei Kontrollstrukturen nicht? Und wieso den else nicht auf eine neu Zeilen. Es scheint alle Programmierer haben angst für die enter Taste! Es führt zu ein dichtes Textbild und unterstutzt der Leserlichkeit keineswegs.

    if( $foo == $bar )
    {
    //
    }
    else
    {
    //
    }

    wird der Kode zu lange für ein Bildschirm macht man so oder so etwas falsch.

  3. Diese Inkonsistenz stört mich in der Tat auch. Das scheint jedoch sehr beliebt zu sein.

    Da freue ich mich immer über Java, da gibt die Sprache was vor und gut ist. Recht hübsch finde ich den Java-Styleguide ohnehin, für dich wäre er wohl etwas arm an Zeilenumbrüchen…

Kommentare sind geschlossen.