web-dev-qa-db-fra.com

Pourquoi Joomla a-t-il à la fois des modèles et des tableaux?

Dans MVC classique, vous avez des modèles qui correspondent approximativement aux tables de base de données sous-jacentes. Pourquoi Joomla aurait-il besoin de modèles et de tables?

Éditer

Quelques citations des liens fournis:

En résumé, le modèle se concentre sur la logique métier et la table sur les entités de données dans la base de données. Par entité, j'entends une seule ligne dans une table dans une base de données.

"Ainsi, une classe JModel aurait une ou plusieurs classes JTable en tant que propriétés?"

C'est l'idée.

5
Olle Härstedt

La classe JTable est créée pour fonctionner strictement sur un objet de base de données. L'objet de table doit créer, modifier, supprimer, vérifier les données dans la base de données. Il peut être utilisé dans de nombreux modèles, aides, modules. Un modèle unique doit parfois utiliser plusieurs tables et cela peut arriver dans de nombreux modèles. Si vous utilisez JTable, vous n'avez pas besoin de réécrire le code SQL dans chaque modèle pour récupérer ou modifier un seul enregistrement de table. Sans oublier que les changements dans un JTable fonctionnent dans tous les endroits où la table a été utilisée.

La classe JModel est créée pour travailler sur les données. Généralement, cela fonctionne sur des données de base de données, mais également sur des fichiers, des images ou simplement des calculs. Les modèles ne nécessitent pas de JTable, vous pouvez facilement écrire un JModel de travail sans celui-ci. Toutefois, lorsque vous devez créer un compte utilisateur sur un portail complexe, par exemple, il est possible que les données de l'utilisateur se composent non seulement d'une table unique, mais également d'un exemple de données ou d'enregistrements dans d'autres tables. Utiliser JTable vous permettra de gagner du temps sur l’écriture des méthodes CRUD et de vous assurer qu’à chaque endroit une seule table est utilisée. SQL sera toujours à jour.

Avoir ces deux séparés permet au développeur de créer diverses extensions qui ne sont pas strictement liées à la base de données. Par exemple, la galerie qui, dans le modèle, fonctionnera non seulement sur un objet de base de données, mais également sur des images. Le développeur écrit le code de traitement d'image et laisse SQL pour la création et la mise à jour de la base de données à JTable.

Cela peut paraître un peu déroutant au début, mais après quelques extensions, vous verrez que cela est réellement utile. Plus l'extension est importante, plus JTable + JModel sera économisé pour le développeur. Le seul problème est qu'il n'est pas correctement expliqué dans la documentation.

Voici quelques liens utiles

3
Artur Stępień