B.3. Namens Konventionen
B.3.1. Klassen
Zend Framework standartisiert eine Klassennamen Konvention wobei die Namen der Klassen direkt mit den Verzeichnissen übereinstimmen muß in welchen Sie gespeichert sind. Das Basisverzeichnis der ZF Standard Bibliothek ist das "Zend/" Verzeichnis, wobei das Basisverzeichnis der ZF Extras Bibliothek im "ZendX/" Verzeichnis ist. Alle Zend Framework Klassen werden hierarchisch unter dem gleichen Basisverzeichnis gespeichert.
Klassennamen dürfen nur alphanumerische Zeichen enthalten. Nummern sind in Klassennamen gestattet es wird aber von Ihnen in den meisten Fällen abgeraten. Unterstriche sind nur gestattet im Platz des Pfadseparators – der Dateiname "Zend/Db/Table.php" muß übereinstimmen mit dem Klassennamen "Zend_Db_Table".
Wenn ein Klassenname aus mehr als einem Wort besteht, muß der erste Buchstabe von jedem neuen Wort großgeschrieben werden. Durchgehende Großbuchstaben sind nicht erlaubt, z.B. eine Klasse "Zend_PDF" ist nicht erlaubt, aber "Zend_Pdf" ist akzeptierbar.
Diese Konventionen definieren einen Pseudo-Namespace Mechanismus für Zend Framework. Zend Framework wird das PHP Namespace Feature einbauen sobald es verfügbar ist und es für unsere Entwickler in deren Anwendungen ohne Bedenken verwendbar ist.
Siehe die Klassennamen in der Standard und Extra Bibliothek für Beispiel dieser Klassennamen Konvention. WICHTIG: Code welcher mit dem Framework ausgeliefert werden muß, aber nicht Teil der Standard oder Extras Bibliothek ist (z.B. Anwendungscode oder Bibliotheken die nicht von Zend ausgeliefert werden), dürfen nie mit "Zend_" oder "ZendX_" beginnen.
B.3.2. Dateinamen
Für alle anderen Dateien sind nur alphanummerische Zeichen, Unterstriche, und der Bindestrich ("-") gestattet. Leerzeichen sind völlig verboten.
Jede Datei die irgendeinen PHP Code enthält sollte mit der Endung ".php" enden, mit Ausnahme der View Skripte. Die folgenden Beispiele zeigen akzeptierbare Dateinamen für Zend Framework Klassen:
Zend/Db.php
Zend/Controller/Front.php
Zend/View/Helper/FormRadio.php
Dateinamen müssen den Klassennamen wie oben beschrieben entsprechen.
B.3.3. Funktionen und Methoden
Funktionsnamen dürfen nur Alphanummerische Zeichen enthalten. Unterstriche sind nicht gestattet. Nummern sind in Funktionsnamen gestattet aber in den meisten Fällen nicht empfohlen.
Funktionsnamen müssen immer mit einem Kleinbuchstaben anfangen. Wenn Funktionsnamen aus mehr als einem Wort bestehen, muß der erste Buchstabe jeden Wortes großgeschrieben werden. Das wird normalerweise "camelCase" Formatierung genannt.
Wortreichtum wird generell befürwortet. Funktionsnamen sollten so wortreich wie möglich sein um deren Zweck und Verhalten zu erklären.
Das sind Beispiele akzeptierbarer Namen für Funktionen:
filterInput()
getElementById()
widgetFactory()
Für objekt-orientiertes Programmieren, sollten Zugriffspunkte für Instanzen oder statische Variablen immer mit "get" oder "set" beginnen. Wenn Design-Pattern implementiert werden, wie Singleton oder das Factory Pattern, sollte der Name der Methode den Namen des Pattern enthalten wo es praktikabel ist, um das Verhalten besser zu beschreiben.
Für Methoden in Objekten die mit dem "private" oder "protected" Modifikator deklariert sind, muß das erste Zeichen des Namens der Methode ein einzelner Unterstrich sein. Das ist die einzige akzeptable Anwendung von einem Unterstrich im Namen einer Methode. Methoden die als "public" deklariert sind sollten nie einem Unterstrich enthalten.
Funktionen im globalen Bereich (auch "floating functions" genannt) sind gestattet aber es wird von Ihnen in den meisten Fällen abgeraten. Diese Funktionen sollten in einer statischen Klasse gewrappt werden.
B.3.4. Variablen
Variablennamen dürfen nur Alphanummerische Zeichen enthalten. Unterstriche sind nicht gestattet. Nummern sind in Variablen gestattet in den meisten Fällen aber nicht empfohlen.
Für Instanzvariablen die mit dem "private" oder "protected" Modifikator deklariert werden, muß das erste Zeichen des Funktionsnamens ein einzelner Unterstrich sein. Das ist die einzige akzeptierte Anwendung eines Unterstriches in einem variablen Namen. Klassenvariablen welche als "public" deklariert werden sollten nie mit einem Unterstrich beginnen.
Wie bei Funktionsnamen (siehe Abschnitt 3.3) müssen Variablennamen immer mit einem Kleinbuchstaben starten und der "camelCaps" Schreibweise folgen.
Wortreichtum wird generell befürwortet. Variablen sollen immer so wortreich wie möglich sein um die Daten zu beschreiben die der Entwickler in Ihnen zu speichern gedenkt. Von gedrängte Variablennamen wie "$i" und "$n" wird abgeraten für alles außer die kleinsten Schleifen. Wenn eine Schleife mehr als 20 Codezeilen enthält sollten die Index-Variablen einen ausführlicheren Namen haben.
B.3.5. Konstanten
Konstanten können beides enthalten, sowohl Alphanummerische Zeichen als auch Unterstriche. Nummern sind in Konstantennamen gestattet.
Alle Buchstaben die in Konstantenname verwendet werden müssen großgeschrieben haben, wärend Wörter in einem Konstantennamen durch Unterstriche getrennt werden müssen.
Zum Beispiel ist EMBED_SUPPRESS_EMBED_EXCEPTION gestattet aber EMBED_SUPPRESSEMBEDEXCEPTION nicht.
Konstanten müssen als Klassenkonstanten definiert werden mit dem "const" Modifikator. Die Definition von Konstanten im globalen Bereich mit der "define" Funktion ist gestattet aber es wird es wird stärkstens davon abgeraten.