nuova Zend_Loader_Autoloader non trovare i file
-
18-09-2019 - |
Domanda
Ho appena aggiornato da 1,7 a ZF ZF 1.9, e quasi tutto lavora benissimo ... tranne che per Autoloader.
Vecchio:
require_once('Zend/Loader.php');
Zend_Loader::registerAutoload();
require_once 'Zend/Loader/Autoloader.php';
$loader = Zend_Loader_Autoloader::getInstance();
$loader->registerNamespace('MySiteName_');
$loader->setFallbackAutoloader(true);
I file che ho bisogno di auto-carico non sono per lo più namespace (perché è un grande progetto da pre-namespacing). Sono nelle seguenti directory:
- / application / controller
- / common / modelli
- / biblioteca
- / vendor
Il sito sembra funzionare bene, tranne che non riesce a trovare /library/Form.php
Ha usato per essere in grado di, ma non più. Funziona se posso aggiungere un require_once 'library / form.php', ma che non dovrebbe essere necessario, e mi sono preoccupato che se mi metto a fare che in alcuni luoghi, avrò bisogno di abbandonare il caricatore automatico e hard-code tutto comprende. Ho pensato di aggiungere "setFallbackAutoloader (vero)", in combinazione con avere "libreria" nel mio percorso di inclusione sarebbe risolvere il problema, ma non lo feci.
Il mio percorso di inclusione è:
.: / Users / lofye / Documents / htdocs / mysitename / fornitore
: / Users / lofye / Documents / htdocs / mysitename /
comune
: / Utenti / lofye / Documenti / htdocs / mysitename / comuni / modelli
: / Users / lofye / Documents / htdocs / mysitename /
biblioteca
: / Users / lofye / Documents / htdocs / mysitename
Qualsiasi aiuto molto apprezzato!
Soluzione
Hai detto che funziona se si fa questo:
require_once 'library/Form.php';
Ma, se il percorso della libreria è inclusa, allora si dovrebbe essere specifica, come autoloader fa, in questo modo:
require_once 'Form.php';
Prova a digitare require_once 'form.php'; nello script. Ha bomba? Poi, il percorso di inclusione non ha / biblioteca, e che avrebbe bisogno di essere fissato.
Altri suggerimenti
Il caricatore automatico è solo andare a cercare le classi di carico che iniziano con MySiteName_
. Prova ad aggiungere Form
come uno spazio dei nomi forse?
$loader->registerNamespace('Form');
Il nome della classe all'interno del file library/Form.php
deve essere Form
. Qual è il tuo nome della classe?
ho provato qui e sta funzionando benissimo.