Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende ÜberarbeitungLetzte ÜberarbeitungBeide Seiten der Revision | ||
dev:all:psr-1de [12.08.2014 12:52] – Manuela v.d.Decken | dev:all:psr:psr-1 [17.08.2019 17:15] – [PHP Tags] Manuela v.d.Decken | ||
---|---|---|---|
Zeile 5: | Zeile 5: | ||
===== Übersicht ===== | ===== Übersicht ===== | ||
- | * Dateien MÜSSEN ausschließlich **''<? | + | * Dateien MÜSSEN ausschließlich **''<? |
* Dateien MÜSSEN ausschließlich UTF-8 ohne BOM codiert werden. | * Dateien MÜSSEN ausschließlich UTF-8 ohne BOM codiert werden. | ||
* Dateien SOLLTEN entweder Symbole (Klassen, Funktionen, Konstanten etc.) deklarieren **ODER** direkt ausführbaren Code (// | * Dateien SOLLTEN entweder Symbole (Klassen, Funktionen, Konstanten etc.) deklarieren **ODER** direkt ausführbaren Code (// | ||
- | * Namensräume | + | * Namespaces |
* Klassennamen MÜSSEN in // | * Klassennamen MÜSSEN in // | ||
* Klassenkonstanten MÜSSEN in Großbuchstaben mit _ zwischen einzelnen Worten deklariert werden. | * Klassenkonstanten MÜSSEN in Großbuchstaben mit _ zwischen einzelnen Worten deklariert werden. | ||
Zeile 14: | Zeile 14: | ||
===== Dateien ===== | ===== Dateien ===== | ||
- | ==== PHP Tags ==== | ||
- | PHP-Code MUSS ausschließlich den langen **''<? | ||
==== Zeichensatz-Codierung ==== | ==== Zeichensatz-Codierung ==== | ||
Zeile 21: | Zeile 19: | ||
==== Side Effects ==== | ==== Side Effects ==== | ||
- | Ene Datei SOLLTE entweder neue Symbole (Klassen, Funktionen, Konstanten, etc.) deklarieren und keinerlei 'side effects' | + | Eine Datei SOLLTE entweder neue Symbole (Klassen, Funktionen, Konstanten, etc.) deklarieren und keinerlei 'side effects' |
Die Phrase 'side effects' | Die Phrase 'side effects' | ||
Zeile 61: | Zeile 59: | ||
</ | </ | ||
+ | ===== Namespaces und Klassennamen ===== | ||
+ | Die Benennung von Namespaces und Klassen MUSS nach [[dev: | ||
+ | |||
+ | 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: | ||
+ | <PHP> | ||
+ | <?php | ||
+ | // php 5.3 und später: | ||
+ | namespace Vendor\Model; | ||
+ | |||
+ | class Foo | ||
+ | { | ||
+ | } | ||
+ | </ | ||
+ | <PHP> | ||
+ | <?php | ||
+ | // php 5.3 und später: | ||
+ | namespace Vendor\Model; | ||
+ | |||
+ | class FooInterface | ||
+ | { | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== Klassen- Konstanten, Eigenschaften und Methoden ===== | ||
+ | Das Term ' | ||
+ | |||
+ | ==== Konstanten ==== | ||
+ | Klassenkonstanten MÜSSEN vollständig in Großbuchstaben deklariert werden. Der Unterstrich trennt einzelne Worte. | ||
+ | <PHP> | ||
+ | <?php | ||
+ | namespace Vendor\Model; | ||
+ | |||
+ | class Foo | ||
+ | { | ||
+ | const VERSION = ' | ||
+ | const DATE_APPROVED = ' | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | ==== Eigenschaften ==== | ||
+ | Dieser Leitfaden vermeidet absichtlich jede Empfehlung in Bezug auf die Verwendung von $**StudlyCaps**, | ||
+ | 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: | ||
+ | >>' | ||
+ | |||
+ | <PHP> | ||
+ | $sItemName = ' | ||
+ | $iUserId | ||
+ | $fPrice | ||
+ | </ | ||
+ | |||
+ | ==== Methoden ==== | ||
+ | Methodennamen MÜSSEN in **camelCase()** deklariert werden. | ||
+ | |||
+ | |||
+ | --- // |