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-0de [12.08.2014 09:33] – Manuela v.d.Decken | dev:all:psr-0de [13.08.2014 16:34] – [Unterstriche in Namensräumen and Klassennamen] Manuela v.d.Decken | ||
---|---|---|---|
Zeile 6: | Zeile 6: | ||
===== Verbindliches ===== | ===== Verbindliches ===== | ||
- | * Ein voll qualifizierter | + | * Ein voll qualifizierter |
- | * Jeder Namensraum | + | * Jeder Namespace |
- | * Jeder Namensraum | + | * Jeder Namespace |
- | * Jeder Namensraum-Trenner wird beim Laden vom Dateisystem in einen DIRECTORY_SEPARATOR konvertiert. | + | * Jeder Namespace-Trenner wird beim Laden vom Dateisystem in einen DIRECTORY_SEPARATOR konvertiert. |
- | * Jeder **_** im Klassennamen wird zu einem DIRECTORY_SEPARATOR konvertiert. :!: //Anpassung für WB:// Der **_** hat keine spezielle Bedeutung in der __normalen__ Definition eines Namensraumes, bei Pseudo-Namensräumen | + | * Jeder **_** im Klassennamen wird zu einem DIRECTORY_SEPARATOR konvertiert. :!: //Anpassung für WB:// Der **_** hat keine spezielle Bedeutung in der __normalen__ Definition eines Namespace, bei Pseudo-Namespaces |
- | * Der voll qualifizierte | + | * Der voll qualifizierte |
- | * Alphabetische Zeichen (A-Z) in Vendornamen, | + | * Alphabetische Zeichen (A-Z) in Vendornamen, |
===== Beispiele ===== | ===== Beispiele ===== | ||
Zeile 21: | Zeile 21: | ||
\Zend\Mail\Message | \Zend\Mail\Message | ||
- | ===== Unterstriche in Namensräumen | + | ===== Unterstriche in Namespaces |
\namespace\package\Class_Name | \namespace\package\Class_Name | ||
Zeile 28: | Zeile 28: | ||
Die Standards die wir hier setzen sollten der kleinste gemeinsame Nenner zum problemlosen Zusammenspiel der Autoloader sein. Mit der Beispielimplementation des SplClassLoader können Sie testen, ob ihre Implementation den Standards entspricht. | Die Standards die wir hier setzen sollten der kleinste gemeinsame Nenner zum problemlosen Zusammenspiel der Autoloader sein. Mit der Beispielimplementation des SplClassLoader können Sie testen, ob ihre Implementation den Standards entspricht. | ||
+ | ===== Beispiel Implementation ===== | ||
+ | Unten ist eine einfache Beispiel-Funktion, | ||
+ | vorgeschlagenen Standards automatisch geladen werden. | ||
+ | |||
+ | <file php ExampleAutoloader.php> | ||
+ | <?php | ||
+ | |||
+ | function autoload($className) | ||
+ | { | ||
+ | $className = ltrim($className, | ||
+ | $fileName | ||
+ | $namespace = ''; | ||
+ | if ($lastNsPos = strrpos($className, | ||
+ | $namespace = substr($className, | ||
+ | $className = substr($className, | ||
+ | $fileName | ||
+ | } | ||
+ | $fileName .= str_replace(' | ||
+ | |||
+ | require $fileName; | ||
+ | } | ||
+ | |||
+ | </ | ||
+ | |||
+ | ===== SplClassLoader Implementation ===== | ||
+ | |||
+ | Die folgende GIST ist eine Beispielimplementierung, | ||
+ | |||
+ | [[http:// | ||
+ | |||
+ | --- // | ||