Salut à tous

J'ai deux petites questions concernant l'organisation des fichiers suivant le modèle MVC.

1/ Prenons l'exemple d'une galerie d'images, qui peut être visualisée ou modifiée. Les affichages associés à ces deux actions sont différents, quelle est la bonne méthode à adopter :

a) On place tous les affichages dans un seul fichier vue/galerie.php, et ils sont gérés par des if, sauf que c'est plutôt le boulot du contrôleur donc ça me parait pas logique.

b) On a plusieurs fichiers vue/galerie_display.php, vue/galerie_edit.php, et on appelle les différentes vues avec le contrôleur, ce qui me parait plus logique mais est il bon d'avoir plusieurs vues pour un seul contrôleur ?

c) Autre solution ?


2/ Imaginons qu'on a deux modules sur le site : une galerie et une page contact, comment doit on gérer les fichiers js et css :

a) Je pensais m'orienter vers la création de dossier vue/css et vue/js, et dedans ajouter un main.js et styles.css
Ces deux principaux fichiers serviraient uniquement a regrouper les fichiers galerie.css et contact.css ensemble et galerie.js et contact.js ensemble aussi ( tous dans les dossiers css et js respectivement). De cette façon on aurait qu'un seul appel à un fichier css et un seul à un fichier js.

b) Autre solution?


Merci d'avance pour votre aide Smiley cligne
Modifié par SpiStache (24 Jul 2014 - 09:16)
Hello,

SpiStache a écrit :

1/ Prenons l'exemple d'une galerie d'images, qui peut être visualisée ou modifiée. Les affichages associés à ces deux actions sont différents, quelle est la bonne méthode à adopter :

Personnellement, j'ai un controller, qui gère mes conditions, mes affectations de variables, et qui passe tout à mes vues. Je me retrouve donc avec plusieurs vues, pour un même controller. Je ne fais par contre aucun traitement logique dans mes vues. Juste de l'affichage.

Mon arborescence "classique" d'un module ressemble donc à ça:

// Dossier modèle. PDO, gaffe aux injections toussa toussa
[ model ] >> users.model.php

// Dossier controller. Traitement logique, affectation de mes variables et construction de mes formulaires (j'utilise une classe qui gère mes formulaires.)
[ controller ] >> users.controller.php

//Dossier vue, avec plusieurs vues, appelée selon la situation par mon controller
// Pour info, c'est du smarty. On en dira ce qu'on voudra, mais ça impose une certaine rigueur.
[ vue ] >> index.tpl - profile.tpl - edit.tpl - add.tpl

//Fichier index.php, qui sert a appeler mes fonctions controller. J'ai tendance a utiliser les variables fonctions, ce qui n'est pas forcément la meilleure solution. Il m'arrive aussi de faire du switch case pour gérer mes appels. Tout dépend de l'envergure du projet.
index.php

SpiStache a écrit :

2/ Imaginons qu'on a deux modules sur le site : une galerie et une page contact, comment doit on gérer les fichiers js et css :

J'utilise un système de layout, qui va récupérer les fichiers CSS et JS généraux. Chaque index.tpl de mes modules, se charge dans un fichier layout.tpl.

Si j'ai besoin d'un fichier JS ou CSS particulier dans un de mes modules, j'indique dans le controller du module quels fichiers je dois charger. L'info remonte jusqu'au layout.tpl qui s'occupe de charger les fichiers spécifiques, uniquement en cas de besoin. Je n'est donc pas de fichiers JS ou CSS qui se chargent inutilement.

Pour info: J'utilise un "framework" perso, pas parfait certes, mais qui me permet d'organiser mes projets simplement, en bénéficiant de quelques coups de pouces (Smarty, gestion d'utilisateur, de formulaire, ...)

En espérant t'avoir aidé Smiley cligne

Bye,
Yokii
Modifié par Yokii (24 Jul 2014 - 23:20)
Ok merci de ton conseil, c'est a peu près ce que j'avais en tête donc c'est cool !
Je jette un coup d'oeil a Smarty en passant Smiley smile