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 PHP Discussion :

Que contient un Controller ?


Sujet :

MVC PHP

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2010
    Messages : 111
    Par défaut Que contient un Controller ?
    Bonjour,

    Je comprend bien le principe du MVC, mais j'ai un soucis de comprehension, le modele correspond à une table de la base de données, mais le controlleur ?

    Que mettez vous dans un controlleur, est ce des actions relatives à une partie du site même si elles font appel à plusieurs modèle ?

    Je suis un peu perdu avec ça

  2. #2
    Membre Expert
    Avatar de 5h4rk
    Homme Profil pro
    CTO at TabMo
    Inscrit en
    Février 2011
    Messages
    813
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : CTO at TabMo
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2011
    Messages : 813
    Par défaut
    Bonjour,
    Le controleur à pour objectif de faire la liaison entre la vue et le controlleur, en gros il controle toutes ce qui est transmit depuis la vue, regarde les explication du schéma MVC

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2010
    Messages : 111
    Par défaut
    Bonjour,

    Merci pour votre réponse. Ok mais le controlleur contient il que les actions propre à une seule table / modèle ou peut il contenir des actions concernant plusieurs modèles ou tables ?

  4. #4
    Membre Expert
    Avatar de 5h4rk
    Homme Profil pro
    CTO at TabMo
    Inscrit en
    Février 2011
    Messages
    813
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : CTO at TabMo
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2011
    Messages : 813
    Par défaut
    Il ne faut pas confondre action du controller et méthode d un model.
    Tu peux mettre ce que tu veux dans tin controller

  5. #5
    Membre Expert Avatar de nathieb
    Homme Profil pro
    DevOps
    Inscrit en
    Mai 2004
    Messages
    1 058
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : DevOps
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 058
    Par défaut Controlleur
    Bonjour,

    Tu peux voir ton controlleur comme un switch principal qui redirige en fonction de ta partie métier ( mini action ) et qui appelle un template pour l'affichage.

    Exemple :

    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
     
    switch($_REQUEST['action'])
         case 'agenda':
                 $agenda = new Agenda($today);
                 //tu appelles ta partie métier, accès a ta base avec des DAO
                 //puis traitement calculs, t'appelle ta mère ;)
                 //tu appliques les changements aux variables de templates ..
                 $monmoteurdetemplate->assign($montableau);
                 etc ....
                 $template = 'agenda.tpl';
                 break;
         etc ..... 
         default: ....
     
    $monmoteurdetemplate->display($template);
    En fait, dans mon controlleur principal j'appelle des actions secondaires qui sont représentées par des fichiers PHP.
    Bien sûr, il faut traiter tes requêtes ($_GET $_POST) pour éviter l'injection de code et tout le reste.
    C'est l'idée ...

    Olivier

  6. #6
    Membre Expert
    Avatar de 5h4rk
    Homme Profil pro
    CTO at TabMo
    Inscrit en
    Février 2011
    Messages
    813
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : CTO at TabMo
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2011
    Messages : 813
    Par défaut
    Cela n est pas tout à fait juste il n y a aucun rapport avec les règles métier, celle ci sont implentées dans le model.

    Et dans ton exemple c est un controlleur global donc il faut faire attention, c est surement à cause de cela que tu parle de regles métier.

    Sur Zend ce qui permet d appeler un module un controleur une action c est le dispatcher.

  7. #7
    Membre Expert Avatar de nathieb
    Homme Profil pro
    DevOps
    Inscrit en
    Mai 2004
    Messages
    1 058
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : DevOps
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 058
    Par défaut controller
    Bonjour,

    Effectivement, je ne connais pas Zend, mais c'est un moyen simple de comprendre MVC

    Olivier

Discussions similaires

  1. [MFC] Autre que GetWindowText et Control
    Par Gibou dans le forum MFC
    Réponses: 9
    Dernier message: 15/06/2006, 21h15
  2. Réponses: 2
    Dernier message: 19/05/2006, 18h42
  3. [Jawin][VB]comment savoir ce que contient un objet ?
    Par blaz dans le forum API standards et tierces
    Réponses: 15
    Dernier message: 22/08/2005, 12h27
  4. éxécution d' un programme >> que contient la ram ???
    Par bob_sapp dans le forum Langages de programmation
    Réponses: 9
    Dernier message: 18/01/2004, 21h16

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