nouveau Zend_Loader_Autoloader ne pas trouver les fichiers
-
18-09-2019 - |
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!
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.