neue Zend_Loader_Autoloader nicht das Auffinden von Dateien
-
18-09-2019 - |
Frage
Ich bin gerade von ZF aufgerüstet 1,7 bis ZF 1,9 und fast alles funktioniert ... außer für Autoloader.
Alt:
require_once('Zend/Loader.php');
Zend_Loader::registerAutoload();
Neu:
require_once 'Zend/Loader/Autoloader.php';
$loader = Zend_Loader_Autoloader::getInstance();
$loader->registerNamespace('MySiteName_');
$loader->setFallbackAutoloader(true);
Die Dateien, die ich für die automatische Last brauchen meist nicht Namespace (weil es ein großes Projekt von Pre-Namespacing). Sie sind in den folgenden Verzeichnissen:
- / application / controllers
- / common / Modelle
- / library
- / Anbieter
scheint die Website mit Ausnahme gut zu funktionieren, dass es nicht /library/Form.php
finden
Es verwendet, um in der Lage zu sein, aber nicht mehr. Es funktioniert, wenn ich eine require_once ‚Bibliothek / form.php‘ hinzufügen, aber das sollte nicht nötig sein, und ich mache mir Sorgen, dass, wenn ich tun beginnen an einigen Stellen, dass, ich werde den Autoloader und hart Code verzichten müssen alle einschließt. Ich dachte, das Hinzufügen „setFallbackAutoloader (true)“, kombiniert mit „Bibliothek“ in meinem schließen Weg wäre es zu beheben, aber es kam nicht.
Ihr Include-Pfad ist:
.: / Users / lofye / Dokumente / htdocs / mysitename / Kreditoren
: / Users / lofye / Dokumente / htdocs / mysitename / common
: / Users / lofye / Dokumente / htdocs / mysitename / common / models
: / Users / lofye / Dokumente / htdocs / mysitename / Bibliothek
: / Users / lofye / Dokumente / htdocs / mysitename
Jede Hilfe sehr geschätzt!
Lösung
Du hast gesagt, es funktioniert, wenn Sie dies tun:
require_once 'library/Form.php';
Aber, wenn Sie Ihre Bibliothekspfad enthalten ist, dann sollten Sie sein, die Angabe, wie Autoloader der Fall ist, wie folgt aus:
require_once 'Form.php';
Versuchen Typisierung require_once 'form.php'; in das Skript. Ist es bombardieren? Dann Ihre Include-Pfad nicht / Bibliothek hat, und das müsste festgelegt werden.
Andere Tipps
Ihr Autoloader ist nur noch das Laden von Klassen, um zu versuchen, die mit MySiteName_
beginnen. Versuchen Sie, Form
als ein Namespace vielleicht?
$loader->registerNamespace('Form');
Der Klassenname in der Datei library/Form.php
sollte Form
werden. Was ist Ihr Klassenname?
ich getestet hier und funktioniert gut.