IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MVC Discussion :

[Méthode] Des question à propos du MVC


Sujet :

MVC

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 21
    Points : 18
    Points
    18
    Par défaut [Méthode] Des question à propos du MVC
    Bonjour.

    Je tente de concevoir un site générique qui permettrait à l'utilisateur de poster ses œuvres artistiques : photos, texte, vidéos, etc.

    En d'autres termes, on aurait la possibilité de créer des galeries , et dans chaque galerie on pourrait y adjoindre des éléments (un élément étant un fichier accompagné d'un nom, d'une description (ces dernières infos stockées dans une BDD)).

    Pour que les choses soient propres j'aimerais adopter le pattern MVC mais plusieurs questions me viennent à l'esprit.

    Pour cela j'ai donc :
    Concernant les éléments :
    - Le modèle : permet d'ajouter, de retirer, de modifier un élément du site
    - Le contrôle : le contrôle associé
    - La vue : avec différents modes (miniature, agrandir, ...)

    Concernant les galeries :
    - Le modèle : permet d'ajouter une galerie , de définir la galerie mère , galerie fille, etc. mais aussi permet d'ajouter un élément déjà existant (déjà créé avec la partie controle d'Element) dans une galerie...
    - Le contrôle : Permet de gérer la galerie mais permet aussi de créer un nouvel élément à partir de la classe gerant les éléments.
    - la vue ...

    MA QUESTION :

    Le controle de la galerie va récupérer la galerie à afficher...à partir de là il va devoir faire la liste des éléments qui se trouvent à l'intérieur...

    Ma question est : dans la conception MVC, et dans cette situation, le controle de la galerie doit-il :
    • Récupérer une liste de Controle d'élément et faire appel à la vue de chaque élément pour l'inclure dans la vue de la galerie
    • OU récupérer une liste de Vue qu'on injecte à la vue de la galerie
    • OU la vue de la galerie doit -elle faire appel à la vue de chaque éléments à afficher ?


    Cette question peut paraître basique pour les habitués, mais elle me pose problème.

    Si quelqu'un pourrait me donner une piste, merci d'avance.

  2. #2
    Expert éminent sénior

    Avatar de Philippe Vialatte
    Homme Profil pro
    Architecte technique
    Inscrit en
    Juillet 2004
    Messages
    3 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2004
    Messages : 3 029
    Points : 12 465
    Points
    12 465
    Par défaut
    Salut,

    mon grain de sel...(a prendre au nième degré, je suis pas expert ...de toute facon si je dis une c....rie, je me ferais taper )

    Pour MVC, le C ne veut pas dire controle, mais controlleur -> une entite qui va se charger de "mettre en relation" ton modele et ta vue.

    Donc, quand tu dis :
    - Le contrôle : Permet de gérer la galerie mais permet aussi de créer un nouvel élément à partir de la classe gerant les éléments.
    Pas d'accord, ca reste le role de ton modele, ton controlleur n'est la que pour que la vue communique avec le modele

    Donc, pour ton exemple, le controleur va appeler ta vue gallerie, et lui passer le modele (ta liste d'elements).

    Apres, charge a ta vue de gerer la facon dont les donnees vont etre presentees a l'utilisateur

    Mon Blog

    The Cake is still a lie !!!



    Vous voulez contribuer à la rubrique .NET ? Contactez-moi par MP.
    Vous voulez rédiger des articles pour la rubrique .NET ? Voici la procédure à suivre.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 21
    Points : 18
    Points
    18
    Par défaut
    Merci de ta réponse.

    Je me suis en effet mal exprimé, j'aurais du dire :

    - Le contrôle : Permet de recevoir les demandes d'affichage d'une galerie, mais aussi les demandes de créations d'éléments au sein de la galerie courante.

    Mais je ne comprends pas pourquoi je dois passer un modèle à ma VueGalerie sachant qu'elle va devoir appeler VueElement pour afficher la liste des éléments... Car le modèle, c'est justement ce qui gère les données et ce n'est pas le rôle de la vue de faire ça... donc peut être as-tu voulu dire les données directement...

    D'après ce que tu me dis , il faudrait que je fasse un truc du genre pour le contrôleur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    class ControleurGalerie
    {
      function __construct()
      {
         ...
         if(isset($_GET['MGAL_afficher'])) // si on demande l'affichage du contenu d'une galerie
         {
             ...
             //+++ On récupère les infos sur la galerie concernée (nom, description) +++
             $idGal = $_GET['MGAL_afficher_idGal']; // id de la galerie à afficher
             $gGal = new GererGalerie(new Galerie($idGal));
             $galConcernee = gGal->recuperer(); // données chargées 
    
             //+++ Sélection des éléments qui sont dans la galerie $idGal +++
             $cr = new CriteresSelectionElements()
             $cr->estDansGalerie($galConcernee);
             $cr->estDeType(FichierType::Image);
    
             $selec_el = new SelectionElements($cr); // objet qui porte la liste des éléments qui ont pour galerie mère $idGal
    
             $VueGalerie = new VueGalerie($galConcernee);
             $VueGalerie->listeElements($selec_el);
             $VueGalerie->afficher();
             
         }
         ...
      }
    }
    Et ainsi la VueGalerie récupérerait la galerie concernée, puis la liste des éléments à afficher...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    class VueGalerie()
    {
       private $galConcernee;
       private $listeElements;
       ...
       function __construct($gal)
       {
          ...
          $this->galConcernee = $gal;
       }
    
       public function listeElements($l)
       {
          $this->listeElements = $l;
       }
    
       public function afficher()
       {
          echo "<h1>".$this->galConcernee->getNom()."</h1>";
          foreach($this->listeElements as $e)
          {
              $vueEl = new VueElement($e, ModeElement::MINIATURE);
              $vueEl->afficher();
          }
       }
    }
    Est-ce bien ça ?

  4. #4
    Expert éminent sénior

    Avatar de Philippe Vialatte
    Homme Profil pro
    Architecte technique
    Inscrit en
    Juillet 2004
    Messages
    3 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2004
    Messages : 3 029
    Points : 12 465
    Points
    12 465
    Par défaut
    Citation Envoyé par NiRaDo Voir le message
    Mais je ne comprends pas pourquoi je dois passer un modèle à ma VueGalerie sachant qu'elle va devoir appeler VueElement pour afficher la liste des éléments... Car le modèle, c'est justement ce qui gère les données et ce n'est pas le rôle de la vue de faire ça... donc peut être as-tu voulu dire les données directement...
    vi, plutot les donnees

    apres, je suis un peu rouille cote php, mais ca ne me semble pas deconnant

    Mon Blog

    The Cake is still a lie !!!



    Vous voulez contribuer à la rubrique .NET ? Contactez-moi par MP.
    Vous voulez rédiger des articles pour la rubrique .NET ? Voici la procédure à suivre.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 21
    Points : 18
    Points
    18
    Par défaut
    Citation Envoyé par pvialatte Voir le message
    vi, plutot les donnees

    apres, je suis un peu rouille cote php, mais ca ne me semble pas deconnant
    Finalement j'ai opté pour l'utilisation du framework cakePHP qui me permet de plus appréhender le MVC.

Discussions similaires

  1. Réponses: 7
    Dernier message: 24/02/2012, 20h51
  2. Réponses: 12
    Dernier message: 13/06/2011, 09h28
  3. Question à propos des compilateurs
    Par elf dans le forum Autres éditeurs
    Réponses: 4
    Dernier message: 20/07/2005, 17h00
  4. Question à propos des niveaux de transaction
    Par davy.g dans le forum Oracle
    Réponses: 3
    Dernier message: 18/01/2005, 15h31
  5. Une question à propos des thread
    Par tscoops dans le forum C++Builder
    Réponses: 4
    Dernier message: 07/11/2003, 14h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo