2010-11-17 6 views
0

Quelle est la différence avec ces trois classes? Ils semblent tous avoir une fonction similaire. Quelqu'un peut-il m'expliquer clairement et quels sont ceux qui sont automatiquement utilisés par Zend_Application?Zend_Loader_Autoloader vs Zend_Application_Module_Autoloader

Zend_Application_Module_Autoloader 
Zend_Loader_Autoloader_Resource 
Zend_Loader_Autoloader 
+1

Avez-vous lu leurs descriptions respectives dans le [Guide de référence ZF] (http://zendframework.com/manual/fr/reference.html)? Pouvez-vous s'il vous plaît indiquer plus précisément ce qui ne vous est pas clair à leur sujet? – Gordon

+1

Oui, je l'ai fait. Tout le jargon spécifique à Zend est un peu difficile à suivre. –

Répondre

2

Copie de façon flagrante du guide de référence. S'il vous plaît pointer tout problème que vous avez compris leurs concepts, afin que nous puissions fournir des explications supplémentaires.

Zend_Loader_Autoloader

Zend_Loader_Autoloader propose une solution d'auto-chargement pour Zend Framework. Il a été conçu avec plusieurs objectifs en tête:

  • Fournir un véritable autochargeur d'espace de nom. (Les incarnations précédentes interceptaient tous les espaces de noms d'userland.)
  • Permet d'enregistrer des rappels arbitraires en tant que chargeurs automatiques et de les gérer en tant que pile. (Au moment d'écrire ces lignes, cela résout certains problèmes avec spl_autoload, qui ne permet pas de réenregistrer un callback qui utilise une méthode d'instance.)
  • Permet une correspondance optimiste des espaces de noms pour une résolution de classe plus rapide.

Zend_Loader_Autoloader_Resource

autoloaders de ressources destinées à gérer le code de bibliothèque espaces de noms qui suivent les directives de codification standards Zend Framework, mais qui n'ont pas 1: 1 entre le nom de la classe et la structure des répertoires . Leur but principal est de faciliter le chargement automatique du code de ressource d'application, tel que les modèles, les formulaires et les ACL spécifiques à l'application.

Les chargeurs automatiques de ressources s'enregistrent avec l'autoloader à l'instanciation, avec l'espace de noms auquel ils sont associés. Cela vous permet de facilement écrire du code d'espace de noms dans des répertoires spécifiques, tout en bénéficiant des avantages de l'auto-chargement.

Zend_Application_Module_Autoloader

navires Zend Framework avec une mise en œuvre concrète de Zend_Loader_Autoloader_Resource qui contient des correspondances de ressources qui couvrent la structure de répertoire par défaut recommandé pour les applications Zend Framework MVC.

+0

Ok donc, Zend_Application_Module_Autoloader est pour charger * les classes de votre application *. Zend_Loader_Autoloader est pour le chargement des classes Zend Framework. Correct??? Y a-t-il d'autres classes similaires? –

+0

@sims Non. Le module charge du contenu dans les modules ZF. Vous pouvez regrouper des parties connexes de votre application dans des modules dans votre dossier d'application et cet autochargeur les chargera. L'autochargeur de ressources charge tout ce qui ne correspond pas aux conventions de nommage ZF de My_Zend_Class_Name à My/Zend/Class/Name.php et Zend_Autoloader est le chargeur automatique général. – Gordon

+0

Zend_Autoloader s'occupe donc du chargement des classes ZF standard? Si je suis la convention de soulignement du chemin (My_Zend_Class_Name to My/Zend/Class), je ne devrais pas utiliser quelque chose de spécial alors?Juste (includePaths.library = APPLICATION_PATH "/../library") dans mon .ini peut-être? –