Wie eine Bibliothek, um ein Zend-Framework-2-Anwendung using namespace basiert autoloading?
Ich erstellt einen Unterordner MyNamespace
im /vendor/
(ist es der richtige Ort für eigene Bibliotheken?) und wollen die Klassen, wie MyNamespace\Mvc\Router\MyCustomRouter
in meiner Anwendung. Wie kann ich diese Bibliothek auf my-namespace basiert autoloading?
Mögliche Duplikat -> stackoverflow.com/questions/8559107/...
Ich habe versucht, so, wie hier gezeigt (mit
Hast du eine Module.php Datei in
Nein, habe ich nicht. Aber es ist kein Modul, es ist eine Bibliothek, die-wie die ZF. Die ZF library-Ordner hat auch keine
Es gibt tatsächlich eine Menge von Möglichkeiten, dies zu tun. Sie konnte sich nur fügen Sie Ihren namespace und den Pfad zur
Ich habe versucht, so, wie hier gezeigt (mit
Module#getAutoloaderConfig()
und 'MyNamespace' => __DIR__ . '/../../vendor/MyNamespace'
), aber meine Klassen kann noch nicht gefunden werden.Hast du eine Module.php Datei in
/vendor/MyNamespace/
zu tun?Nein, habe ich nicht. Aber es ist kein Modul, es ist eine Bibliothek, die-wie die ZF. Die ZF library-Ordner hat auch keine
Module
Klasse.Es gibt tatsächlich eine Menge von Möglichkeiten, dies zu tun. Sie konnte sich nur fügen Sie Ihren namespace und den Pfad zur
vendor/composer/autoload_namespaces.php
(vorausgesetzt der Komponist ist in Verwendung). Aber ganz ehrlich, wenn die lib benutzt wird, die mit dem Zend Mvc, warum nicht machen es zu einem Modul? Die skeleton-app eingerichtet ist, suchen Sie für die Module in vendor
sowieso.InformationsquelleAutor automatix | 2013-03-27
Du musst angemeldet sein, um einen Kommentar abzugeben.
Bearbeiten
init_autoloader.php
und ändern Sie dieif ($zf2Path) {
Abschnitt:Beachten Sie zusätzlich die
MyNamespace
Schlüssel innerhalb derZend\Loader\StandardAutoloader
Abschnitt.InformationsquelleAutor Rob Allen
Zusätzlich zu Rob ' s Antwort, einige andere Wege, um das automatische laden einer benutzerdefinierten Bibliothek
Erstens, stellen Sie sicher, dass Ihre Ordner-Struktur ist psr0 konform
Typische Struktur für die mythische psr0 konform MyNamespace-Bibliothek verwendet, die in den Beispielen
Sind von einem Module.php Datei mit
getAutoloaderConfig
Direkt in
index.php
mit derAutoloaderFactory
zum konfigurieren derStandardAutoloader
Könnten Sie auch das gleiche tun in einem ./config/autoload/Datei
Eine weitere alternative, um Ihre lib zu Bearbeiten
vendor/composer/autoload_namespaces.php
InformationsquelleAutor Crisp
Außerdem können Sie die composer autoloading
InformationsquelleAutor Cawa