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 :

TP "Evoluez vers une architecture MVC"


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Reconversion
    Inscrit en
    Novembre 2018
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Reconversion
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2018
    Messages : 503
    Par défaut TP "Evoluez vers une architecture MVC"
    Bonjour,

    Débutant en PHP, je suis entrain de transpirer sur cet excellent TP.

    J'ai une question lorsque l'auteur bascule son MVC en objet, et plus particulièrement la création d'une classe vue dont voici le script pour rappel :

    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
     
    class Vue {
     
      // Nom du fichier associé à la vue
      private $fichier;
      // Titre de la vue (défini dans le fichier vue)
      private $titre;
     
      public function __construct($action) {
        // Détermination du nom du fichier vue à partir de l'action
        $this->fichier = "Vue/vue" . $action . ".php";
      }
     
      // Génère et affiche la vue
      public function generer($donnees) {
        // Génération de la partie spécifique de la vue
        $contenu = $this->genererFichier($this->fichier, $donnees);
        // Génération du gabarit commun utilisant la partie spécifique
        $vue = $this->genererFichier('Vue/gabarit.php',
          array('titre' => $this->titre, 'contenu' => $contenu));
        // Renvoi de la vue au navigateur
        echo $vue;
      }
     
      // Génère un fichier vue et renvoie le résultat produit
      private function genererFichier($fichier, $donnees) {
        if (file_exists($fichier)) {
          // Rend les éléments du tableau $donnees accessibles dans la vue
          extract($donnees);
          // Démarrage de la temporisation de sortie
          ob_start();
          // Inclut le fichier vue
          // Son résultat est placé dans le tampon de sortie
          require $fichier;
          // Arrêt de la temporisation et renvoi du tampon de sortie
          return ob_get_clean();
        }
        else {
          throw new Exception("Fichier '$fichier' introuvable");
        }
      }
    }
    Ma question porte sur la fonction extract(). Un coup d'oeil sur la doc m'a fait comprendre que cette fonction crée des variables à partir des indexs d'un tableau associatif, mais du coup je ne comprends pas son usage dans le premier appel de la fonction
    genererFichier(). Car si je comprends bien, elle doit créer des variables dans la partie spécifique de chaque fichier vue. Mais quelles sont ces variables justement ?

    Cordialement Olivier

  2. #2
    Membre Expert

    Homme Profil pro
    développeur
    Inscrit en
    Octobre 2013
    Messages
    1 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : développeur

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 594
    Par défaut
    Salut,

    C'est du sucre syntaxique,
    Tu passes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
       array('titre' => $this->titre, 'contenu' => $contenu)
    à ta fonction,
    extract va créer $titre et $contenu. Dans le fichierqui représente ta vue au lieu d'utiliser on pourra utiliser
    directement $titre ce qui a un avantage au niveau lisibilité.

  3. #3
    Membre éprouvé
    Homme Profil pro
    Reconversion
    Inscrit en
    Novembre 2018
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Reconversion
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2018
    Messages : 503
    Par défaut
    Ok, j'ai vu ensuite un peu plus loin dans le cours que en effet ça créée des variables sur l'array d'une entrée de table. Merci pour ta réponse !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Évoluer vers une architecture MVC en PHP
    Par Community Management dans le forum Langage
    Réponses: 66
    Dernier message: 31/05/2019, 11h53

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