Benutzer-Werkzeuge

Webseiten-Werkzeuge


dev:all:psr:psr-1

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
dev:all:psr:psr-1 [12.08.2014 12:52]
Manuela v.d.Decken
dev:all:psr:psr-1 [17.08.2019 17:15] (aktuell)
Manuela v.d.Decken [PHP Tags]
Zeile 5: Zeile 5:
 ===== Übersicht ===== ===== Übersicht =====
  
-  * Dateien MÜSSEN ausschließlich **''<?​php''​** ​ (:!: //Anpassung für WB:// <​del> ​und **''<?​=''​**</​del>​) ​Tags verwenden.+  * Dateien MÜSSEN ausschließlich **''<?​php''​** und **''<?​=''​** Tags verwenden.
   * 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 (//​**side-effects**//​) enthalten. Aber sie SOLLTEN NICHT beides gleichzeitig tun.    * Dateien SOLLTEN entweder Symbole (Klassen, Funktionen, Konstanten etc.) deklarieren **ODER** direkt ausführbaren Code (//​**side-effects**//​) enthalten. Aber sie SOLLTEN NICHT beides gleichzeitig tun. 
-  * Namensräume ​und Klassen MÜSSEN [[dev:​all:​psr-0de|PSR-0]] folgen.+  * Namespaces ​und Klassen MÜSSEN [[dev:all:psr:psr-0|PSR-0]] folgen.
   * Klassennamen MÜSSEN in //​**StudlyCaps**//​ deklariert werden.   * Klassennamen MÜSSEN in //​**StudlyCaps**//​ deklariert werden.
   * 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 **''<?​php ​ ?>''​** Tag  (:!: //Anpassung für WB:// <del> oder den kurzen Echo **''<?​= ?>''​** Tag</​del>​) benutzen. Es DÜRFEN NICHT andere Tag-Variationen benutzt werden. 
  
 ==== 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'​ enthalten, oder aber es SOLLTE ausführbare Logik mit 'side effects'​ enthalten, aber niemals ​SOLLTE ​es beides tun.+Eine Datei SOLLTE entweder neue Symbole (Klassen, Funktionen, Konstanten, etc.) deklarieren und keinerlei 'side effects'​ enthalten, oder aber sie SOLLTE ausführbare Logik mit 'side effects'​ enthalten, aber sie SOLLTE ​NICHT beides tun.
  
 Die Phrase 'side effects'​ bedeutet '​ausführbare Logik',​ die nicht in Klassen oder Funktionen gekapselt ist und in der Regel beim '​Includen'​ der Datei sofort unkontrolliert ausgeführt wird. Die Phrase 'side effects'​ bedeutet '​ausführbare Logik',​ die nicht in Klassen oder Funktionen gekapselt ist und in der Regel beim '​Includen'​ der Datei sofort unkontrolliert ausgeführt wird.
Zeile 61: Zeile 59:
 </​PHP>​ </​PHP>​
  
 +===== 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:
 +<PHP>
 +<?php
 +// php 5.3 und später:
 +namespace Vendor\Model;​
 +
 +class Foo
 +{
 +}
 +</​PHP>​
 +<PHP>
 +<?php
 +// php 5.3 und später:
 +namespace Vendor\Model;​
 +
 +class FooInterface
 +{
 +}
 +</​PHP>​
 +
 +
 +===== 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.
 +<PHP>
 +<?php
 +namespace Vendor\Model;​
 +
 +class Foo
 +{
 +    const VERSION = '​1.0';​
 +    const DATE_APPROVED = '​2014-08-12';​
 +}
 +</​PHP>​
 +
 +==== 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
 +
 +<PHP>
 +$sItemName = '​Something';​
 +$iUserId ​  = 2;
 +$fPrice ​   = 45.25;
 +</​PHP>​
 +
 +==== Methoden ====
 +Methodennamen MÜSSEN in **camelCase()** deklariert werden.
 +
 +
 + --- //​[[manuela@isteam.de|Manuela v.d.Decken]] 12.08.2014 20:35//
dev/all/psr/psr-1.1407847963.txt.gz · Zuletzt geändert: 03.06.2015 15:54 (Externe Bearbeitung)