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