Bonjour,
Je suis en train de développer un site en MVC et j'ai quelques petites questions sur ce sujet auxquelles les différents tutos que j'ai pu parcourir n'ont pas répondu.
Sur mon site, j'ai un menu avec des catégories.
Lorsque je clique sur une catégories, cela m'affiche les membres du site rattachés à cette catégorie.
Question 1 :
Les catégories du menus sont stockées en BD, donc il me faut un fichier modèle pour pouvoir les récupérer ! Or comme le menu est partagé par toutes les pages du site, je ne peux pas le rattacher à un contrôleur. Où donc déclarer la fonction qui permet de construire le tableau des catégories en faisant appel au fichier modèle, tableau qui sera ensuite passé à la vue.
Question 2 :
Lorsque je clique sur une catégorie, je place le numéro de la catégorie dans une variable de session et ensuite j'affiche la liste des membres triés par leur appartenance à la catégorie choisie. Comment faire pour transmettre la sélection à la requête de mon fichier model ? La question se reposera avec les fonctions de tris d'ailleurs. Existe-t-il une bonne pratique (sans PDO) pour construire automatiquement mes requêtes avec les fonctions, filtres et tris passés en paramètres ? Dois-je transmettre la restriction depuis mon controller via un tableau par exemple ? ou est-ce mieux d'utiliser directement les variables de session dans la fonction du model ?
Question 3 :
Avant d'afficher la liste des membres d'une catégorie, je fais un test sur la catégorie pour vérifier si elle existe (elle est passée dans l'url, donc un minimum de contrôle s'impose). Or dans la mesure où j'appelle le controller membres, je suis obligé de faire le contrôle sur la catégorie dans le controller des membres ! N'y a-t-il pas un mélange des genres ? Ne devrais-je pas avoir un controller catégorie dans lequel je fais le check ? Mais dans ce cas, je ne vais rechercher les membres dans le controller categorie ? Le serpent se mord la queue ! Là encore, y a-t-il une bonne pratique ?
Question 4 (la dernière :-) ):
Pour toutes mes fonctions outils utilisées un peu partout dans mes controller, j'ai créé une classe utils dans laquelle je déclare des fonctions statiques (par exemple : echapper() qui échappe les caractères spéciaux pour éviter les injections). Ainsi, pour appeler cette fonction, je fais : $post = utils::echapper($_POST).
Je trouve cela un peu lourd à manipuler. N'y a-t-il là encore pas mieux à faire ?
Merci de vos éclaircissements et autres conseils !
Partager