Programmierstil
Autor: Vilma Plum
eingetragen: Mittwoch, 29. Juni 2005 um 09:45 Uhr (26/2005 Kalenderwoche)
geändert: Freitag, 17. April 2009 um 14:07 Uhr (16/2009 Kalenderwoche)
Keywords: Schreibstil Standard Editor
Text:
PEAR-Standards unter:
http://pear.php.net/manual/de/standards.php
1. Einrückungen:
Leerstellen benutzen, oder Tabulator benutzen der 4 Leerstellen erzeugt. Tab-Breite im Editor auf 4 setzen.
Saubere Nutzung der Einrückungen, d.h., Gleiche Ebene sollte auch geleiche Einrückung aufweisen.
2. Zeilenlängen:
Möglichst kurze und übersichtliche Zeilen erzeugen.
Längere Bedingungsabfragen eher untereinander setzen, ebenso lange SQL-statements.
3. Schleifen:
Array-Durchläufe sollten möglichst mit foreach abgearbeitet werden. foreach arbeitet schneller als for, da der Gebrauch eines expliziten Zählers entfällt.
4. Variablenbenennung:
Keine Großbuchstaben verwenden für Funktionsnamen oder variablen-Namen.
Zur besseren Lesbarkeit weitere Wörter in Namen mit Großbuchstaben beginnen.
5. Konstanten:
Immer in Großbuchstaben. Trennung zweier Wörter durch Underscore.
Anders bei OOP (Objektorientierte Programmierung), hier sind Großbuchstaben bei Klassen- und Funktionsnamen erwünscht. Dann wird der erste Buchstabe eines Wortes großgeschrieben, auch bei zusammengesetzten Namen (class Text_PrettyPrinter, function starthandler()).
5. Globale Variablen:
Wenn möglich, auf die Verwendung globaler Variablen verzichten. Hier lieber Konstanten erzeugen (wenn möglich) oder Session-variablen, oder die variablen im Funktionsaufruf übergeben. Hierbei ist auf die Nutzung von Referenzen zu achten. Diese nur verwenden wenn es zwingend nötig ist.
6. Short Tags:
keine Short Tags verwenden. Der code soll generell protierbar bleiben. Da auf anderen Servern die Nutzung von Short Tag in der php.ini durchaus ausgestellt sein kann, lieber darauf verzichten.
7. HTML Erzeugung:
Wenn möglich HTML-tags außerhalb von php konstruieren.
8. Kommentare:
Fleissig kommentieren.
Bei Funktionen die Standard-Dokumentation von phpDocumentor verwenden:
/**
* Kurzbeschreibung
*
* Ausführliche Beschreibung
* @tags
*/
Beispiel:
/**
* sethistoryline
*
* fills the history line
* If $mainunit equals 'none', fills in only id and string at current counterposition
* If no parameter equals 'none', fills in main unit, id and string at current counterposition
* If $datasetid equals 'none', fills in only main unit at current counterposition
*
* @global int $GET['counter']: the counter to keep track of current array position
* @global arr $SESSION['historyline']: the list of datasets already browsed
* @param string $mainunit: string yielding the name of the actual main unit
* @param int $dataset_id: the id to use
* @param string $string: string to build, used for display purposes
* @param string $jump: string to identify the kind of jump done
*/
Quellcode:
/** * set_history_line * * fills the history line * If $main_unit equals 'none', fills in only id and string at current counterposition * If no parameter equals 'none', fills in main unit, id and string at current counterposition * If $dataset_id equals 'none', fills in only main unit at current counterposition * * @global int $_GET['counter']: the counter to keep track of current array position * @global arr $_SESSION['history_line']: the list of datasets already browsed * @param string $main_unit: string yielding the name of the actual main unit * @param int $dataset_id: the id to use * @param string $string: string to build, used for display purposes * @param string $jump: string to identify the kind of jump done */