Upload
alex-kellner
View
1.839
Download
1
Embed Size (px)
DESCRIPTION
TYPO3 coding guidelines - Was ist beim Programmieren zu beachten und warum?
In2code.deWir leben TYPO3
Wir leben TYPO3
TYPO3 & in2code Coding Guidelines
(PHP)
In2code.deWir leben TYPO3
Introduction
In2code.deWir leben TYPO3
Was sind Coding Guidelines
Die CG definieren, wie TYPO3 Code, Dateien und Verzeichnisse strukturiert und formatiert sein sollten. CG liefern keine technischen Informationen und hilft nicht beim Programmieren.
In2code.deWir leben TYPO3
Warum braucht man Coding Guidelines
• Sicherheit• Lesbarkeit
Die CG helfen, sich in unbekanntem Code (und das kann durchaus der eigene Code nach einem längeren Zeitraum sein) schnell und sicher zurechtzufinden. Das Einhalten der CG sichert eine skalierbare und sichere Erweiterung gerade bei der Arbeit im Team.
In2code.deWir leben TYPO3
PHP Showcase
In2code.deWir leben TYPO3
function xy () {
$a = "<div style=color:blue;>Das ist ein Text</div>"; if ($b)
$a = "<a href=\"index.php?id=$_POST["var"]\">$a</a>";$anzahl = $row['x'].'Keine Produkte gewählt';
mysql_connect($dbort,$dbuser,$dbpw); mysql_select_db($dbdb);$z=mysql_query("SELECT * FROM table"); while($datenvondatenbank=mysql_fetch_array($z)) { echo "Daten: $datenvondatenbank[links]"; }
}
Finde den (die) Fehler
Warnung: Zu intensive Betrachtung
kann zu epileptischen Anfällen führen!
In2code.deWir leben TYPO3
function xy() {
Auflösung I
• Sinnvolle Namen für Methoden und Klassen vergeben• Sichtbarkeit der Methoden und Attribute vergeben (PHP5)
$a = "<div style=color:blue;>Das ist ein Text</div>";• Sinnvolle Variablennamen (Nur temporäre Variablen mit kurzer
Schreibweise)• HTML Code stets in Templates auslagern• Stringwerte in Hochkommas können schneller geparst werden als in
Anführungszeichen
if ($b) $a = "<a href=\"index.php?id=$_POST["var"]\">$a</a>";
• IF Anweisungen immer mit Klammern• Sinnvolle Variablennamen (Nur temporäre Variablen mit kurzer
Schreibweise)• HTML Code stets in Templates auslagern• GET/POST Parameter nicht ungefiltert ausgeben
$anzahl = $row['x'].'Keine Produkte gewählt';• Sämtliche Bezeichnungen und Hinweistext international verständlich
(Englisch)• Texte in Sprachdateien auslagern (locallang)• Vor und nach jedem . ein Leerzeichen einfügen
In2code.deWir leben TYPO3
while($datenvondatenbank=mysql_fetch_array($z)) {
Auflösung II
• Beginnende Klammern in der gleichen Zeile
mysql_connect($dbort,$dbuser,$dbpw); mysql_select_db($dbdb);• TYPO3 API Funktionen vorziehen• Jede Anweisung in eine neue Zeile
$z=mysql_query("SELECT * FROM table");• TYPO3 API Funktionen vorziehen• Stringwerte in Hochkommas können schneller geparst werden als in
Anführungszeichen
echo "Daten: $datenvondatenbank[links]"; }
• Ausgabe erfolgt in TYPO3 in der Regel nicht über echo sondern als Rückgabewert
• Stringwerte in Hochkommas können schneller geparst werden als in Anführungszeichen
• Zeilen sollten der Übersicht wegen mit Tabstopps (nicht Leerzeichen) eingerückt werden
In2code.deWir leben TYPO3
Auf einen Blick I• Leerzeichen
• nach Operatoren (>, =, <, ==, *, +, …) Ausnahme $i++
• nach Funktions-Argumenten getTitleByUid($param1, $param2)
• Kommentare innerhalb des Codes• In einer eigenen Zeile davor bündig mit dem entsprechenden Code• Kommentare sind immer wichtig (vor allem wenn die Funktion nicht
ersichtlich ist)• Debugausgaben
• Diese müssen gut beschrieben sein (An- und Ausschalten)• IF/ELSE/ELSEIF
• Leerzeichen vor und nach den runden Klammern• Nur zusammen mit geschweiften Klammern
• Zeilenende• Unix• Keine Leerzeilen vor oder nach php tags (<?php … ?>)• Keine Leerzeichen am Ende einer Zeile• Zeilen sollen kürzer als 80 Zeichen sein
• PHP Tags• Immer <?php (nie <?)• Immer mit Abschluss ?>
In2code.deWir leben TYPO3
Auf einen Blick II
• Schleifen• foreach statt while(list())• foreach vs. reset()
• Dateinamen• So lang wie gewollt• Kleinschreibung
• Klassen, Funktionen und Variablen• Klassenfunktion immer dokumentieren• Nur eine Klasse pro Datei• camelCase in der Schreibweise (kein Unterstrich)• Erstes Zeichen ist kleingeschrieben• Variablenname nicht im Parameterkommentar der Methoden aufführen
• String Variablen• Hochkomma anstatt Anführungszeichen
• Array• Array zuvor definieren bevor dieses an eine Funktion übergeben wird
In2code.deWir leben TYPO3In2code.
Vielen Dank
www.in2code.deStefan BusemannTina GasteigerAlex Kellner