Deutsch:Coding guidelines/Vorgaben

(Version 1.36)

=1. Vorgaben/Voreinstellungen=

Editor-Einstellungen
Tabs vs. Leerzeichen Um das Lesen so einfach wie möglich zu machen, werden wir Tabs und keine Leerzeichen verwenden. Wir verwenden 4 (vier) Leerzeichen für ein Tab - deshalb müssen Sie Ihre Tab-Breite im Editor auf 4 Leerzeichen setzen. Stellen Sie sicher, dass, wenn Sie die Datei speichern, er Tabs und keine Leerzeichen speichert. Auf diese Weise kann der Code in der Art angezeigt werden wie wir es wollen, ohne das Layout der wirklichen Dateien zu stören.

Tabs vor in den Zeilen vor dem Code sind kein Problem, aber innerhalb eines Textes kann es zu einem Problem kommen, wenn ihre Einstellungen sich von unseren unterscheiden. Hier ein kurzes Beispiel wie es aussehen sollte:

{TAB}$mode{TAB}{TAB}= request_var('mode', ''); {TAB}$search_id{TAB}= request_var('search_id', '');

Wenn mit Tabs eingegeben wird (ersetzen sie {TAB}), müssen beide gleichen Zeichen auf derselben Höhe sein.

Zeilenumbrüche:

Stellen Sie Sicher, dass Ihr Editor Dateien im UNIX-Format speichert. Das bedeutet, dass Zeilen mit einem newline gespeichert werden, nicht mit einer CR/LF Combo, wie unter Win32, oder dem, was auch immer ein Mac benutzt. Jeder anständige Editor sollte diese Einstellung bieten, aber es könnte nicht die Standard-Einstellung sein. Lernen Sie mit ihrem Editor umzugehen. Wenn Sie Rat über Windows-Editor wollen, können Sie einen der Entwickler fragen. Einige von ihnen arbeiten ebenfalls mit Win32.

File Header/Kopfzeilen
Standard Header für neue Dateien:

Diese Vorgabe für den Kopf muss an den Anfang aller phpBB Dateien eingefügt werden:

/**
 * @package {Paketname}
 * @version $Id: $
 * @copyright (c) 2007 phpBB Group
 * @license http://opensource.org/licenses/gpl-license.php GNU Public License
 * @license http://opensource.org/licenses/gpl-license.php GNU Public License

Bitte schauen sie in den Abschnitt 'Datei Positionen' um den richtigen Paketnamen zu erfahren.

Dateien, die Code beinhalten:

Für diese Dateien müssen sie einen leeren Kommentar direkt nach dem Kopf/Header einfügen, um zu verhindern, dass automatische Dokumentationsprogramme den Kopfteil als Erläuterung für die ersten Code-Zeilen interpretieren.

/**
 * {Kopfteil/Header}

/** {CODE}

Dateien die nur Funktionen beinhalten:

Vergessen Sie nicht die Funktion zu kommentieren (insbesondere die erste Funktion die auf den Kopf/Header folgt). Jede Funktion sollte zumindest einen Kommentar haben, der erklärt was die Funktion macht. Für komplexere Funktionen wird empfohlen die Parameter ebenfalls zu kommentieren.

Dateien die nur Klassen enthalten:

Vergessen Sie nicht die Klasse zu kommentieren. Klassen benötigen eine separate @package-Definition, es ist die gleiche wie die im Kopfteil/Header. Abgesehen von diesem Sonderfall, gilt das gleiche für die Klassen, sowie deren Methoden wie für Dateien die nur Funktionen beinhalten.

Code der auf den Kopfteil/Header folgt in Dateien die nur Funktionen/Klassen enthalten:

Wenn dieser Fall zutrifft, ist die beste Methode die die Dokumentation vereinfacht, einen Kommentar mit einer ignore Anweisung zu verwenden, als Beispiel:

/**
 * {Kopfteil/Header}

/** Kleiner Codeabschnitt, meistens nur ein oder zwei Definitionen oder eine if-Abfrage
 * @ignore

/** class ...
 * {Dokumentation}

Datei Positionen
Funktionen die von mehr als einer Seite benutzt wird, gehören in die Datei functions.php, Funktionen die speziell für eine Datei sind sollten in dieser Datei (am Ende) oder in die für den Bereich entsprechende Funktionsdatei. Manche Dateien in dem /includes Ordner sind für spezielle Bereiche zuständig. Zum Beispiel Datei-Uploads, das Anzeigen von etwas, Benutzerspezifische Funktionen und so weiter.

Die folgenden Pakete sind vordefiniert, und dazu passende Features/Funktionen sollten in den erwähnten Dateien/Positionen platziert werden, genauso wie der spezifische Paketname benutzt werden sollte. Die Paketnamen sind fett in der folgenden Liste:


 * phpBB3
 * Core/Basis Dateien und alle Dateien die nicht in ein separates Paket gehören


 * acm
 * /includes/acm, /includes/cache.php
 * Dateien für das Caching


 * acp
 * /adm, /includes/acp, /includes/functions_admin.php
 * Administrationsbereich


 * dbal
 * /includes/db
 * Abstrakte Datenbankschicht / Database Abstraction Layer.
 * Basis Klasse ist dbal


 * /includes/db/dbal.php
 * Basis Datenbank Abstraktions Klasse, definiert die Schnittstelle zur Datenbanken und für alle Datenbanktypen gültiges
 * /includes/db/firebird.php
 * Firebird/Interbase Datenbank Abstraktion
 * /includes/db/msssql.php
 * MSSQL Datenbank Abstraktion
 * /includes/db/mssql_odbc.php
 * MSSQL ODBC Datenbank Abstraktion für MSSQL
 * /includes/db/mysql.php
 * MySQL Datenbank Abstraktion für MySQL 3.x/4.0.x
 * /includes/db/mysql4.php


 * /includes/db/mysqli.php
 * MySQLi Datenbank Abstraktion
 * /includes/db/oracle.php
 * Oracle Datenbank Abstraktion
 * /includes/db/postgres.php
 * PostgreSQL Datenbank Abstraktion
 * /includes/db/sqlite.php
 * Sqlite Datenbank Abstraktion


 * diff
 * /includes/diff
 * Diff-Engine


 * docs
 * /docs
 * phpBB Dokumentation


 * images
 * /images
 * Alle allgemeinen Bilder, die nicht zu einem Style gehören


 * install
 * /install
 * Installationssystem


 * language
 * /language
 * Alle Sprachdateien


 * login
 * /includes/auth
 * Plugins für den Login und die Authentifizierung


 * VC
 * /includes/captcha
 * CAPTCHA


 * mcp
 * mcp.php, /includes/mcp, report.php
 * Moderationsbereich


 * ucp
 * ucp.php, /includes/ucp
 * Benutzerbereich


 * utf
 * /includes/utf
 * UTF-8 bezogene Funktionen/Klassen


 * search
 * /includes/search, search.php
 * Suchsystem


 * styles
 * /styles, style.php
 * phpBB Styles/Templates/Themes/Imagesets