Pourquoi ces 2 lignes dans Zend Bootstrap fonction autoloading
-
25-09-2019 - |
Question
J'ai vu des exemples qui a ce bloc de code et d'autres exemples qui n'ont pas les 2 lignes commentées peut-être pas. Quel est exactement le but de ces 2 lignes?
$moduleLoader = new Zend_Application_Module_Autoloader(array(
'namespace' => '',
'basePath' => APPLICATION_PATH)
);
$autoloader = Zend_Loader_Autoloader::getInstance(); //MAYBE NOT
$autoloader->setFallbackAutoloader(true); //MAYBE NOT
return $moduleLoader;
Ajout:
compte tenu des réponses, est-il un bonne chose à faire de cette façon? Y a-t-il frais généraux ou tout ce qui est pas bon à ce sujet, ou est-ce la norme pratique?
La solution
La deuxième ligne est une sorte de solution de contournement pour les cas où structure standard chargeur automatique ne suffit pas, et devrait être évitée, car il ralentit les choses (même si parfois il est très pratique).
On dirait que le chargeur automatique de secours ne seront pas disponibles dans ZF 2.0.
- Matthew Weier O'Phinney parle de "points de référence" chargement automatique
Autres conseils
Il fera à utiliser pour tout espace de noms et classes qui ne sont pas un espace de noms, en ignorant efficacement le paramètre « namespace » si aucun chargeur automatique pour cet espace de noms est défini le chargeur automatique spécifié.
Il convient d'utiliser $autoloader->setFallbackAutoloader(true)
lorsque vous avez des classes qui ne font pas partie d'un espace de noms, ou vous avez besoin d'utiliser des classes à travers de nombreux espaces de noms différents.
La première ligne est triviale, la deuxième ligne est mentionnée au manuel. Cela signifie que le autochargeur Zend va essayer de (auto) charge toutes les classes, non seulement les classes mentionnées comme préfixe ou autochargeur enregistré
La première est d'obtenir l'instance du chargeur automatique, qui est elle. Comme le chargeur automatique est un singleton il ne peut avoir qu'une seule instance. Si cette instance n'existe pas encore, il sera créé.
La deuxième ligne est d'avoir l'autoloader comme un fourre-tout -. Chaque fois que quelque chose ne se trouve pas, le chargeur automatique est déclenché