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

Langage PHP Discussion :

charger une vue MVC


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé

    Profil pro
    Pompier
    Inscrit en
    Janvier 2010
    Messages
    391
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Pompier

    Informations forums :
    Inscription : Janvier 2010
    Messages : 391
    Par défaut charger une vue MVC
    Je me pose une question par rapport à la pattern MVC.
    Pour bien poser la situation, je n'ai aucune formation scolaire en informatique, je suis un self made main.

    J'ai développé un site, mais pour le traitement, j'ai tout mis dans le même formulaire, php et html pour toutes les fonction (bouuuuuuuuuuuu) et j'aimerai bien faire quelquechose de propre.

    Avant de recoder je veux savoir comment ça fonctionne précisément.
    Le principe de la patterne ,pas de souci
    la vue appel une fonction dans le contrôleur, qui appel des modèles et une vue charge les données (EN GROS).

    C'est cette dernière étape que je ne comprends pas.

    Tout d'abord, pour appeler la fonction, je passe par la méthode POST.
    je poste depuis ma vue $_POST['function']=verif_mdp (insert,modif,supp)ET dans le contrôleur j'ai quelqueche chose du type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if ($_POST['function']==verif_mdp] {.....}
    if ($_POST['function']==insert] {.....}
    if ($_POST['function']==modif] {.....}
    if ($_POST['function']==supp {.....}
    Mon formulaire ce compose de 3 parties:
    -données sur l'utilisateur (nom,prénom,liens si administrateur)
    -données saisies pour une date
    -listes des dates saisies.

    Nom : vue.jpg
Affichages : 724
Taille : 74,2 Ko

    A partir de cette "VUE" , les fonctions (ouverture/défaut, inserérer,modifier,supprimer) vont au final retourner la vue avec les valeurs.

    Si j'ai bien compris, le code de ma vue est dans un formulaire distinct du contrôleur.

    Comment est-ce que je fais pour récupérer dans ma vue, les valeurs des variables du contrôleur (session?).

    Imaginons la personne se logue et la fonction(ouverture_jour) est appelée.
    Je grossi le code.
    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
     
    if ($_POST['function']==ouverture) {
     
    //récupération des données de l'utilisateur
    include("donnee_utilisateur.php");
    //donne $prenom,$nom,......
     
    //récupération des saisie pour date=date()
    include("donnee_jour.php");
    //donne $date,$T1,......$T10
     
    //récupération liste date saisies
    include("liste_date.php");
    //donne WHILE($date)
     
    //quel est le code pour dire "ouvre la vue XXX.php et insère les données"???
    }

  2. #2
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Salut,

    Citation Envoyé par hugodu28 Voir le message
    Comment est-ce que je fais pour récupérer dans ma vue, les valeurs des variables du contrôleur (session?).
    La vue ne peut pas accéder au contrôleur, chaque vue doit avoir son paramétrage et c'est le contrôleur qui passe les paramètres à la vue.
    La vue est en bout de chaine. Elle ne sait quasiment rien faire à part produire du HTML sécurisé. Tout le reste doit être fait en amont.

  3. #3
    Membre éclairé

    Profil pro
    Pompier
    Inscrit en
    Janvier 2010
    Messages
    391
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Pompier

    Informations forums :
    Inscription : Janvier 2010
    Messages : 391
    Par défaut
    concrétement, on fait comment?

    imaginons que le contrôleur récupère $nom et $prénom, comment il envoit ces valeurs à la vue?

  4. #4
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut
    Le principe de la patterne ,pas de souci
    C'est un pattern

    la vue appel une fonction dans le contrôleur, qui appel des modèles et une vue charge les données (EN GROS).
    Le controler appel un model qui lui retourne des données , le controler appel la vue qui peux utiliser ces données.

    En principe la vue n’interagit pas avec le controler, elle ne fait que utiliser les données qu'on lui met à disposition.

    Donc dans ton controller tu as par exemple un tableau $view qui contient toutes les variables à envoyer à la vue :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $view = array();
    $view['nom'] = 'Dupond';
    $view['age'] = 45;
    puis au moment d'afficher la vue tu fais quelque chose comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    extract($view); // voir la doc php pour extract
    include_once('dossier/ma_vue.php');
    Et dans ta vue tu pourras alors ecrire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <h1>Bonjour <?php echo $nom ?> vous avez <?php echo $age ?></h1>
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre éclairé

    Profil pro
    Pompier
    Inscrit en
    Janvier 2010
    Messages
    391
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Pompier

    Informations forums :
    Inscription : Janvier 2010
    Messages : 391
    Par défaut
    ça a l'air simple, vue comme ça.
    Bon cette aprèm j'essaye on verra bien si les fils se sont touché ou pas.


    le code serait donc
    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
     
    if ($_POST['function']==ouverture) {
     
    //récupération des données de l'utilisateur
    include("donnee_utilisateur.php");
    //donne $prenom,$nom,......
     
    //récupération des saisie pour date=date()
    include("donnee_jour.php");
    //donne $date,$T1,......$T10
     
    //récupération liste date saisies
    include("liste_date.php");
    //donne WHILE($date)
     
    extract($view)
    include_once('ma_vue.php');
    }

  6. #6
    Expert confirmé
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Par défaut
    je suis un self made main
    Tu veux dire, comme Luke Skywalker ?





    Si ça te branche, mon dernier composant permet de faire du MVC de la façon la plus simple que j'ai pu imaginer. Tu peux aller réccupérer la béta ici https://github.com/bdelespierre/cobalt.

    La différence avec ce que tu peux voir sur les ressources en lignes, c'est qu'ici ce ne sont pas les vues qui son appellée mais des ressources identifiées par leurs URI (exemple mon.site.com/article/123), les vues sont en fin de chaine, elles affichent ce que leur renvoient les contrôleurs.

    Voici un exemple concrêt de ce que tu peux faire avec ce composant:
    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
    <?php
     
    // obligatoire
    spl_autoload_register(function ($classname) {
        return include str_replace('_', '/', $classname) . '.php';
    });
     
    // obligatoire
    require_once "Cobalt/Cobalt.php";
     
    Cobalt::bind('/', function ($view) {
      return $view('partials/accueil.php');
    });
     
    Cobalt::bind('/articles', function ($view) {
      $pdo = new PDO('...');
      $stmt = $pdo->query('...');
      return $view('partials/articles.php', array('articles' => $stmt->fetchAll(PDO::FETCH_OBJ)));
    });
     
    Cobalt::handler('get:url');
    J'ai grossi volontairement le trait pour simplifier. Dans les vues du répertoire partials/ tu peux directement utiliser les variables qui sont dans le tableau passé en paramètre à l'objet $view; par exempel dans partials/articles.php tu dispose de $articles et c'est un tableau à 2 dimentions issu de la BDD.

    En gros, Cobalt fournit le routeur et les parseurs d'URl, tu décris tes contrôleurs avec des fonctions anonymes et tu décris tes vues dans de simples fichiers PHP.

Discussions similaires

  1. Réponses: 10
    Dernier message: 03/12/2009, 21h45
  2. [ASP.NET MVC] Codebehind d'une vue partielle
    Par Nadd dans le forum ASP.NET
    Réponses: 2
    Dernier message: 02/10/2009, 13h59
  3. Réponses: 6
    Dernier message: 09/04/2008, 09h57
  4. [Struts] - Charger une vue en fonction du navigateur ?
    Par Tigrou35 dans le forum Struts 1
    Réponses: 1
    Dernier message: 07/08/2007, 11h58
  5. [Spring MVC] Renvoyer vers une vue depuis un intercepteur
    Par ChtiGeeX dans le forum Spring Web
    Réponses: 2
    Dernier message: 01/04/2007, 10h26

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