Bonjour,
Ayant besoin d’utiliser un framework MVC je me suis tourné vers cakephp. Même si je sais me faire à manger, concernant cette cuisine je suis encore débutant.
C’est pour un problème de conception et d'utilisation de cakephp que je sollicite votre aide.
Voici mon problème (simplifier à un cas simple) :
L'objectif est de gérer dynamiquement le contenu de mes pages.
Si ma base de données correspond au diagramme ci-dessus la question se règle à l'aide d'une simple action getPage($id) chargée d'afficher une vue contenant le résultat de la requète SQL : SELECT html FROM contenus WHERE id = $id; (en utilisant le modèle bien sûr).
Cependant le contenu doit pouvoir provenir de plusieurs sources différentes, par exemple soit depuis la table description ou soit depuis un fichier contenant du html dont le chemin est stocké dans la tables fichiers.
De la même manière l’action getPage($id) peut questionner et la table descriptions et la table fichiers.
Cependant par la suite j’ai pour idée que le contenu du layout soit également défini de façon dynamique et que les relations ne soient pas de type « 1..N » mais de type « N..N ».
Je devrai donc utiliser des relations HABTM. Pour chaque « source » supplémentaire je devrai donc créer 3 tables (1 table source puis 2 tables HABTM) ainsi que modifier à fois la fonction ma fonction getPage($id) et à la fois le layout.
J’ai alors pensé à créer un contrôleur avec une (ou par la suite plusieurs) action par source et utiliser un requestAction et une bdd de la manière suivante :
- une action du contrôleur description serait chargée d’afficher le contenu.
- une action du contrôleur fichier serait chargée d’afficher le contenu du fichier.
- l’action getPage($id) serait chargée de récupérer les actions à appeler et de récupérer leur contenu à l’aide d’une request action (de même concernant le layout).
J’ai cependant cru comprendre que l’utilisation de requestAction pouvait être la cause de faibles performances, je me réfère à vous afin d’avoir votre avis sur cette méthode. Etant débutant j’ai peur de ne pas avoir suivit la « bonne technique» et de mal utiliser les fonctionnalités de cakephp.
Merci de votre attention.
Shurtagh
Partager