Question

Je viens de mettre de ZF 1,7 à 1,9 ZF, et presque tout fonctionne très bien ... sauf pour autochargeur.

Ancien:

require_once('Zend/Loader.php');  
Zend_Loader::registerAutoload();

Nouveau:

require_once 'Zend/Loader/Autoloader.php';  
$loader = Zend_Loader_Autoloader::getInstance();  
$loader->registerNamespace('MySiteName_');
$loader->setFallbackAutoloader(true);

Les fichiers que je dois auto-charge ne sont généralement pas d'espace de nom (car il est un grand projet de pré-espaces de noms). Ils sont dans les répertoires suivants:

  • / application / controllers
  • / common / modèles
  • / bibliothèque
  • / fournisseur

Le site semble fonctionner très bien, sauf qu'il ne peut pas trouver /library/Form.php
Il fut de pouvoir, mais pas plus. Il fonctionne si j'ajoute une require_once « bibliothèque / form.php », mais cela ne devrait pas être nécessaire, et je suis inquiet que si je commence à le faire dans certains endroits, je vais devoir abandonner le chargeur automatique et dur code tout comprend. Je pensais ajouter « setFallbackAutoloader (vrai) », combiné à avoir « bibliothèque » dans mon chemin d'inclusion fixerait, mais il n'a pas.

Mon include_path est:
.: / Users / lofye / Documents / htdocs / mysitename / fournisseur
: / Users / lofye / Documents / htdocs / mysitename / commune
: / Utilisateurs / lofye / Documents / htdocs / mysitename / common / modèles
: / Users / lofye / Documents / htdocs / mysitename / bibliothèque
: / Users / lofye / Documents / htdocs / mysitename

Toute aide grandement appréciée!

Était-ce utile?

La solution

Vous avez dit cela fonctionne si vous faites ceci:

require_once 'library/Form.php';

Mais, si votre chemin de la bibliothèque est inclus, alors vous devriez être préciser, comme le fait autoloader, comme ceci:

require_once 'Form.php';

Essayez de taper require_once 'form.php'; dans votre script. Est-il la bombe? Ensuite, votre include_path n'a pas / bibliothèque, et qui aurait besoin d'être fixé.

Autres conseils

Votre chargeur automatique ne va essayer des cours de chargement qui commencent par MySiteName_. Essayez d'ajouter Form comme un espace de noms peut-être?

$loader->registerNamespace('Form');

Le nom de la classe dans le fichier library/Form.php doit être Form. Quel est votre nom de classe?

Je l'ai testé ici et fonctionne très bien.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top