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 |
Und? Wofür entscheidest du dich?
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?
Ja. Da könntest du Recht haben.
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.
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…