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!

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top