Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Nächste Überarbeitung | Vorhergehende ÜberarbeitungLetzte ÜberarbeitungBeide Seiten der Revision | ||
dev:all:psr-0de [12.08.2014 08:08] – angelegt 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, |
- | + | ||
- | ===== Examples ===== | + | |
+ | ===== Beispiele ===== | ||
\Doctrine\Common\IsolatedClassLoader => / | \Doctrine\Common\IsolatedClassLoader => / | ||
- | \Symfony\Core\Request => / | + | \Symfony\Core\Request |
- | \Zend\Acl => / | + | \Zend\Acl |
- | \Zend\Mail\Message => / | + | \Zend\Mail\Message |
- | ===== Underscores | + | ===== Unterstriche |
- | + | | |
- | | + | |
\namespace\package_name\Class_Name => / | \namespace\package_name\Class_Name => / | ||
- | The standards we set here should be the lowest common denominator for painless autoloader interoperability. You can test that you are following these standards by utilizing this sample | + | Die Standards die wir hier setzen sollten der kleinste gemeinsame Nenner zum problemlosen Zusammenspiel der Autoloader sein. Mit der Beispielimplementation des SplClassLoader |
+ | |||
+ | ===== 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:// | ||
+ | |||
+ | --- // | ||
+ | |||
+ |