[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//