0 votes

Avec Zend Framework, quelle est la différence entre module et package ?

Je développe des applications web avec Zend Framework.

Pour l'instant, j'ai une énorme bibliothèque, qui contient tout et n'importe quoi, utilisé par un couple d'applications web. J'envisage de la réorganiser en utilisant le concept de "Module".

Mais je ne suis pas sûr de la différence entre Module et Package.

Ce que je comprends, c'est que :

  • un Module contient une partie d'une application web (pages, modèles...)
  • un paquet est un groupe de classes dans la bibliothèque

Est-ce que je vois bien ? Et comment savoir où doivent aller mes classes (modèle d'un module, ou bibliothèque) ?

Parce que par exemple, j'ai des cours pour faire les traductions. J'ai des classes "modèles", pour représenter une langue, un texte et ses traductions... Et j'ai une sorte de classe "API" qui est juste là pour traduire une chaîne de caractères dans une langue. Je dirais que j'ai besoin d'un module pour les classes modèles et l'interface web pour éditer les traductions, et la classe API irait dans la bibliothèque ? Est-ce bien cela ? N'est-ce pas bizarre d'avoir deux types de classes, une pour le module et une pour la bibliothèque ?

Je suppose que c'est une question ouverte sur l'API, la librairie et l'architecture des applications.

3voto

Gordon Points 156415

Les modules, au sens de ZF, regroupent des éléments concrets, souvent autonomes, application pièces :

Les modules permettent à un développeur de regrouper un ensemble de contrôleurs apparentés dans un groupe organisé de façon logique. La structure du répertoire des modules ressemble à celle du répertoire des applications. [ ] La structure du répertoire des modules devrait ressembler à celle du répertoire de l'application/ dans la structure de projet recommandée

D'autre part, un paquetage est un ensemble de classes dans un fichier bibliothèque de codes qui, conceptuellement, vont ensemble. Par exemple, les ActionHelpers et les ControllerPlugins appartiennent conceptuellement à la famille des Zend_Controller paquet. Toutes les classes de validateurs disponibles appartiennent au paquetage Zend_Validate .

Lorsque vous utilisez PHPDocumentor, vous pouvez annoter votre code pour qu'il appartienne à des paquets. Si vous regardez les Docs API de ZF, vous verrez ce regroupement en vigueur. Essayez de trouver le Zend_Validate_Alpha classe.

Voir

1voto

streetparade Points 6097

Les paquets sont des espaces de noms afin que les symboles ayant des noms similaires n'entrent pas en conflit les uns avec les autres. Par exemple, le symbole &main::first est différent du symbole &List::Util::first . Les paquets sont des préfixes de noms pour les sysbols.

Un module est un fichier de code, ou un arbre de bytecodes. Un module peut être précompilé (.pmc), non compilé (.pm) sur le disque ; ou préchargé en mémoire comme une unité -- en supposant qu'il n'y ait pas d'autosplit.

En résumé : les paquets concernent les espaces de noms, et les modules les fichiers. Ce sont des choses différentes, comme des pommes et des boîtes - jusqu'au jour où vous commencez à placer une sorte de pomme dans une sorte de boîte, et que les gens commencent à penser que les pommes et les boîtes sont liées. Et c'est le cas ! Mais quand même, l'une est un fruit et l'autre un type de conteneur.

0voto

DCC Points 189

C'est simple à mon avis :
Les modules sont comme smarty (une bibliothèque avec un objectif ciblé de templating).
Les packs sont constitués de 2 ou plusieurs modules qui fonctionnent les uns avec les autres pour offrir une solution plus complète.
Encore une fois, c'est mon simple point de vue.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X