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 RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
Letzte ÜberarbeitungBeide Seiten der Revision
dev:all:psr-1de [12.08.2014 12:52] Manuela v.d.Deckendev: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 **''<?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.txt · Zuletzt geändert: 31.08.2023 01:50 von Manuela v.d.Decken