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!

¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top