11
In2code.de Wir leben TYPO3 Wir leben TYPO3 TYPO3 & in2code Coding Guidelines (PHP)

TYPO3 coding guidelines

Embed Size (px)

DESCRIPTION

TYPO3 coding guidelines - Was ist beim Programmieren zu beachten und warum?

Citation preview

Page 1: TYPO3 coding guidelines

In2code.deWir leben TYPO3

Wir leben TYPO3

TYPO3 & in2code Coding Guidelines

(PHP)

Page 2: TYPO3 coding guidelines

In2code.deWir leben TYPO3

Introduction

Page 3: TYPO3 coding guidelines

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.

Page 4: TYPO3 coding guidelines

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.

Page 5: TYPO3 coding guidelines

In2code.deWir leben TYPO3

PHP Showcase

Page 6: TYPO3 coding guidelines

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!

Page 7: TYPO3 coding guidelines

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

Page 8: TYPO3 coding guidelines

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

Page 9: TYPO3 coding guidelines

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 ?>

Page 10: TYPO3 coding guidelines

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

Page 11: TYPO3 coding guidelines

In2code.deWir leben TYPO3In2code.

Vielen Dank

www.in2code.deStefan BusemannTina GasteigerAlex Kellner