15 Conception de composants, de modules et de plugins

Supposons que vous deviez répondre à un besoin informatique pour lequel Joomla! n’offre aucun composant approprié. Prenons comme exemple un concessionnaire automobile qui aimerait proposer des automobiles d’occasion via un site Web Joomla!. Vous pouvez facilement augmenter le périmètre fonctionnel en concevant de nouveaux composants, modules et plugins. Au départ, cela peut paraître une aventure complexe, mais même les débutants en langage PHP en viennent à bout.

Le Chapitre 13 vous a permis de découvrir les rouages de la construction et de la mise en place d’un template (modèle). Vous devinez donc ce qui vous attend. Dans ce chapitre, nous allons moins nous intéresser à la présentation qu’au traitement des données.

Info:
À partir du 1er janvier 2008, la version 4 de PHP n’évolue offi ciellement plus. Toutes les nouvelles extensions doivent donc être conçues pour la version 5 de PHP. Joomla! est compatible avec les deux standards dans sa version 1.5. Pour en savoir plus, rendezvous sur le site http://gophp5.org/.

15.0.1 L’approche MVC (Model – View – Controller)

La version 1.5 de Joomla! introduit une nouvelle approche pour la conception des extensions : l’approche Modèle-Vue-Contrôleur que l’on abrège en MVC. Ce concept se répand de plus en plus dans le monde du développement logiciel afin de maintenir un minimum d’organisation.

En matière de développement de logiciel, on distingue généralement trois domaines :

  • un modèle de données (le Modèle) ;
  • une présentation des données (la Vue) ;
  • un pilotage du programme (le Contrôleur).

Ces trois domaines ont été standardisés, mais les programmeurs, souvent très individualistes, ont tendance à mal réagir à toute injonction externe. Il faut donc leur apporter de véritables avantages. Voyons-les plus en détail.

M : le Modèle (model)

Le modèle définit les données à traiter et à afficher. L’origine de ces données n’est pas figée. Le modèle ne sait ni comment les données vont être présentées, ni comment elles vont être traitées et modifiées.

V : la Vue (présentation, view)

Ce domaine s’intéresse à l’utilisation des données par affichage ou transfert. Une connexion fonctionnelle doit être établie entre le modèle et la vue pour exploiter les données.

C : le Contrôleur

Que reste-t-il au contrôleur ? Il se charge du contrôle de l’ensemble des opérations. C’est le contrôleur qui réagit aux données saisies par l’utilisateur et aux autres événements. C’est lui qui gère les modèles et les vues, et retransmet les données de sortie à une vue (ou une autre).

15.0.2 Quels sont les avantages de MVC ?

Nous avons dit plus haut que cette approche permettait de mieux organiser le développement avec Joomla!. Dans la version 1.0, vous pouviez programmer à bâtons rompus. C’est dorénavant déconseillé dans Joomla! 1.5. Le but n’est pas de créer un carcan pour la création, mais de mieux répondre aux attentes des utilisateurs, c’est-à-dire peut-être vous.

Voici en effet ce que vous pouvez désirer :

  • des sites Web accessibles à tous (overrides) ;
  • des adresses URL optimisées pour les moteurs de recherche (référencement) ;
  • une authentification distribuée ;
  • des possibilités de localisation vers d’autres langues ;
  • la sécurité et la facilité de maintenance ;
  • des possibilités de réutilisation ;
  • et bien d'autres possibilités...

Toutes ces « autres possibilités » sont une des raisons principales de vouloir maintenir de l’ordre dans le projet. Si vous êtes à la tête d’une entreprise unipersonnelle, vous pouvez encore stocker l’organisation dans votre petite tête avec un papier et un crayon. Mais cela devient bien plus difficile avec dix salariés. Si votre société commence à croître, il vous faut un système pour gérer vos projets !
MVC est une réponse, tout du moins au niveau du logiciel. Cette approche permet de concevoir les programmes pour simplifier leur modification ultérieure et en permettre la réutilisation dans d’autres projets. Ce n’est pas la panacée, mais c’est déjà un pas dans la bonne direction. Si vous vous conformez aux règles que définit cette approche, c’est tout bénéfi ce pour vous !

Bien sûr, des questions fondamentales surgissent :

  • Où dois-je placer ma logique de traitement ? Dans le contrôleur ou dans le modèle ?
  • Comment réutiliser des boîte de dialogue ? Dans la vue ?
  • Comment jongler avec plusieurs vues (tableaux, fiches, partie publique, partie administrative).

Il n’y avait pas de structure comparable dans Joomla! 1.0. C’est pourquoi je pense que l’adoption et la réalisation concrète de ce modèle dans Joomla! 1.5 représente l’un des plus beaux objectifs atteint par l’équipe de Joomla!. Seul l’avenir nous dira si les utilisateurs et les programmeurs en conviennent aussi. :-)

Quel est donc l’avantage pour tous ?

L’avantage de cette approche, vous le connaissez déjà. Il est beaucoup plus simple de maintenir en ordre votre bureau, votre cuisine, votre garage, votre véhicule ou votre grenier si vous avez pris un jour la décision de tout bien y ranger. Dans le monde de la conception des logiciels, cette précaution doit être prise dès le départ pour que le projet puisse évoluer et rester contrôlable. Joomla! n’en est qu’au début de sa longue route. Autrement dit, puisque l’équipe qui s’en occupe a pris la décision de faire le ménage dans Joomla! 1.0, c’est pour vous la garantie que Joomla! pourra répondre à l’avenir à tous vos besoins.