Bonjour,
Alors voila, j'aimerai avoir quelques conseils sur la manière d'organiser mon programme.
J'ai actuellement un site qui fonctionne un peu comme un wiki. Quand on écrit dans l'éditeur interne quelque chose comme [fonction|livre], un appel est fait à la classe 'livre' qui va me génerer le code html nécessaire à l'affichage. Le problème, c'est qu'à l'usage, avoir le code html a l'intérieur de mes classes de "gestion", ça n'est pas agréable pour la maintenance et la réusabilité.
Donc, j'ai commencé à refaire mon livre d'or (ce n'est qu'un exemple) mais en fonctionnant en termes de modules (en l'externalisant completement) et en introduisant la notion de MVC.
Ma classe de base est devenue mon 'modèle' et elle gère toutes les notions d'accès à la base et de sauvegarde.
J'ai dans cette classe également une fonction 'affiche', qui appele un template (ma vue) en lui passant un tableau qui contient toutes les données nécessaire à l'affichage. Le template se charge de lire le tableau et de faire le rendu qui va bien.
J'ai également une fonction 'controleur' qui vérifie les variables postées par le livre d'or et qui appele la fonction 'save' de ma classe pour sauvegarder le livre si les champs sont bien rempli, avant d'appeler la fonction 'affichage'.
Cela fonctionne, mais ca n'est pas propre. Notamment si on remplace le code simpliste nécessaire à un livre d'or par un code pour gérer un forum (qui nécessitera au moins une dizaine de templates et un controleur nettement plus poussé, genre capable de gerer des cas comme la création de topic, la création de réponses, la modification de message ou la gestion de tableaux de bord.....
Bref, j'ai une seule classe avec une fonction 'affichage' et une fonction 'controleur' et même si maintenant mon code html est externalisé (c'était le but à la base), ca n'est pas encore assez cloisonné, et ca posera des problèmes, notamment si je dois gerer de gros modules (et il est prévu que ce soit le cas).
Mais là, j'ai un problème d'organisation. Est-ce qu'il me faut une nouvelle classe 'controleur_livre' ? Dans ce cas quel serai son rapport avec mon actuelle classe 'livre' ? Et l'appel aux templates, je le mets où ?
Bref, en terme de classes à creer ou pas, et de ce qu'il faut appeler pour initier l'affichage du livre, et la gestion de quelqu'un qui rentre un nouveau message, je suis un peu perdu. Je n'arrive pas à trouver une cinématique de fonctionnement cohérente et agréable.
Bref, si vous avez des idées, je suis prenneur, merci d'avance ;-)
Partager