[size=10]im englischen Original von [[http://www.php-fig.org/psr/psr-1/|PHP-FIG PSR-1]][/size]
====== Basic Coding Standard ======
Dieser Abschnitt der Standards umfasst Codierungselemente, die erforderlich sind um einen hohen Grad der Kompatibilität zwischen PHP-Codes aus verschiedensten Quellen zu erreichen.
===== Übersicht =====
* Dateien MÜSSEN ausschließlich **''
// side effect: ändert Ini-Settings
ini_set('errot_reporting', E_ALL);
// side effect: lädt eine Datei
include('file.php');
// side effect: erzeugt eine Ausgabe
echo ''.PHP_EOL;
// Deklaration:
function foo()
{
// Funktionskörper
}
Das zweite Beispiel ist eine Datei, die nur Deklarationen ohne alle 'side effects' enthält. Ein Beispiel, das immer zu bevorzugen ist.
// Deklaration
function foo()
{
// Funktionskörper
}
// bedingte Deklaration ist *kein* side effect!
if (! function_exists('bar')) {
function bar()
{
// Funktionskörper
}
}
===== Namespaces und Klassennamen =====
Die Benennung von Namespaces und Klassen MUSS nach [[dev:all:psr:psr-0|PSR-0]] erfolgen.
Das bedeutet, dass jede Klasse in einer eigenen Datei ist und einem Namespace zugewiesen, der wenigstens den Vendor Name als Top-Level hat.
Klassennamen MÜSSEN in **StudlyCaps** deklariert werden.
:!: //Anpassung für WB:// Interfaces und abstrakte Klassen müssen im Namen zusätzlich mit dem Suffix **Interface** oder **Abstract** ergänzt werden.\\
Code der für PHP-5.3 und höher geschrieben wird MUSS formale Namespace nutzen.
Beispiel:
===== Klassen- Konstanten, Eigenschaften und Methoden =====
Das Term 'Klasse' bezieht sich auf alle Klassen, Interfaces und Traits.
==== Konstanten ====
Klassenkonstanten MÜSSEN vollständig in Großbuchstaben deklariert werden. Der Unterstrich trennt einzelne Worte.
==== Eigenschaften ====
Dieser Leitfaden vermeidet absichtlich jede Empfehlung in Bezug auf die Verwendung von $**StudlyCaps**, $**camelCase** oder $**under_score** Eigenschaftennamen.\\
Welche Namenskonvention auch benutzt wird, sie SOLLTE konsistent in einem vertretbaren Rahmen angewendet werden.
:!: //Anpassung an WB:// Es MUSS durchgehend überall das **StudlyCaps** Format benutzt werden, wobei jedem Bezeichner ein Kleinbuchstabe vorangestellt wird, der den Datentyp der Eigenschaft beschreibt. Derzeit definiert sind folgende Zuweisungen:
>>'**s**' => String, '**i**' => Integer/Ganzzahl, '**f**' => Fließkommazahl, '**b**' => boolean, '**a**' => Array, '**o**' => Objekt, '**c**' => Callback, '**m**' => mixed, '**r**' => Resource
$sItemName = 'Something';
$iUserId = 2;
$fPrice = 45.25;
==== Methoden ====
Methodennamen MÜSSEN in **camelCase()** deklariert werden.
--- //[[manuela@isteam.de|Manuela v.d.Decken]] 12.08.2014 20:35//