nueva Zend_Loader_Autoloader no encontrar archivos
-
18-09-2019 - |
Pregunta
Acabo de actualizar desde 1.7 a ZF ZF 1,9 y casi todo funciona bien ... a excepción de cargador automático.
antigua:
require_once('Zend/Loader.php');
Zend_Loader::registerAutoload();
New:
require_once 'Zend/Loader/Autoloader.php';
$loader = Zend_Loader_Autoloader::getInstance();
$loader->registerNamespace('MySiteName_');
$loader->setFallbackAutoloader(true);
Los archivos que necesito para auto-carga en su mayoría no son espacios de nombres (porque es un gran proyecto de pre-namespacing). Se encuentran en los siguientes directorios:
- / application / controllers
- / common / modelos
- / biblioteca
- / proveedor
El sitio parece funcionar bien, excepto que no se puede encontrar /library/Form.php
Lo que solía ser capaz de hacerlo, pero ya no. Funciona si añado un require_once 'biblioteca / form.php', pero eso no debería ser necesario, y me preocupa que si empiezo a hacer que en algunos lugares, voy a tener que abandonar el cargador automático y codificar incluye a todos. Pensé añadiendo "setFallbackAutoloader (verdadero)", combinado con tener "biblioteca" en mi ruta de inclusión sería solucionarlo, pero no fue así.
Mi ruta de inclusión es:
.: / Users / lofye / Documentos / htdocs / mysitename / proveedor
: / Users / lofye / Documentos / htdocs / mysitename / común
: / Users / lofye / Documentos / htdocs / mysitename / common / modelos
: / Users / lofye / Documentos / htdocs / mysitename / biblioteca
: / Users / lofye / Documentos / htdocs / mysitename
Cualquier ayuda muy apreciada!
Solución
Dijiste funciona si usted hace esto:
require_once 'library/Form.php';
Sin embargo, si se incluye su ruta de bibliotecas, entonces usted debe estar indicando, según el autocargador hace, de esta manera:
require_once 'Form.php';
Trate de escribir require_once 'form.php'; en su guión. Qué bomba? Entonces, su ruta de inclusión no tiene / biblioteca, y que tendría que ser fijo.
Otros consejos
El cargador automático sólo se va a intentar cargar las clases que comienzan con MySiteName_
. Trate de añadir Form
como un espacio de nombres tal vez?
$loader->registerNamespace('Form');
El nombre de la clase en el interior del archivo debe ser library/Form.php
Form
. ¿Cuál es su nombre de la clase?
He probado aquí y está funcionando bien.