Outils pour utilisateurs

Outils du site


bloc2:prog:web:mvc-exemple

Ceci est une ancienne révision du document !


Exemple MVC en PHP

Modèle

Exemple de modèle d'accès aux données

dataAccess.php
<?php
 
define("HOST", '127.0.0.1');
define("DB", 'maBdD');
define("USER", 'user1');
define("PASS", 'GabuZoMeu');
 
// Exécute une requête SELECT et retourne le résultat sous la forme d'un tableau
function pdo_query($sql) {
    try {
        // ouverture d'une connexion vers le serveur de BdD
        $cnx = new PDO('mysql:dbname=' . DB . ';host=' . HOST . ';charset=UTF8', USER, PASS);
 
        // exécution de la requête
        $stmt = $cnx->query($sql);
        if ($stmt !== false) {
            // extraction des résultats dans un tableau
            $result = $stmt->fetchAll();
        } 
        else {
            $result = false;
        }
    } catch (Exception $e) {
        $result = false;
    }
 
    // fermeture de la connexion
    unset($cnx);
 
    return $result;
}
 
// Exécute une requête de mise à jour (insert, update ou delete) et retourne 
// le nombre de lignes touchées ou false
function pdo_exec($sql) {
    try {
        // ouverture d'une connexion vers le serveur de BdD
        $cnx = new PDO('mysql:dbname=' . DB . ';host=' . HOST . ';charset=UTF8', USER, PASS);
 
        // exécution de la requête
        $result = $cnx->exec($sql);
    } catch (Exception $e) {
        $result = false;
    }
 
    // fermeture de la connexion
    unset($cnx);
 
    return $result;
}

Vue

Exemple de vues décomposées

vue-charte.php
<!doctype html> 
<html lang="fr">
  <head>
    <meta charset="utf-8">
      <link rel="stylesheet" href="style.css">
      <title>MVC Exemple</title>
  </head>
  <body>
    <nav>
      <?php include $menu; ?>
    </nav>
    <main>
      <?php include $contenu; ?>
    </main>
  </body>
</html>
vue-menu.php
<h2>Menu</h2>
<ul>
  <li><a href="index.php?action=demande1">Fonctionnalité n°1</a></li>
  <li><a href="index.php?action=demande2">Fonctionnalité n°2</a></li>
</ul>
vue-accueil.php
<h1>Page d'accueil</h1>
Le lorem ipsum est, en imprimerie, une suite de mots sans signification utilisée à titre 
provisoire pour calibrer une mise en page, le texte définitif venant remplacer le faux-texte 
dès qu'il est prêt ou que la mise en page est achevée. Généralement, on utilise un texte 
en faux latin, le Lorem ipsum ou Lipsum.

Contrôleur

Exemple de contrôleur

index.php
<?php 
	include "dataAccess.php"; 
 
	$action = filter_input(INPUT_GET, 'action', FILTER_SANITIZE_ENCODED);
 
	if ($action == 'demande1') {
		// accès aux données
		$sql1 = 'SELECT col1 col2, FROM table1';
		$data = pdo_query($sql1);
		if ($data === false) {
			$contenu = 'vue-erreur.php';
		}
		else {
			$contenu = 'vue-demande1.php';
		}
	}
	elseif ($action == 'demande2') {
		// accès aux données
		$sql2 = 'SELECT col1 col2, FROM table2';
		$data = pdo_query($sql2);
		if ($data === false) {
			$contenu = 'vue-erreur.php';
		}
		else {
			$contenu = 'vue-demande2.php';
		}
	}
	else {
		$contenu = 'vue-accueil.php';
	}
 
	$menu = 'vue-menu.php';
	include 'vue-charte.php';
bloc2/prog/web/mvc-exemple.1681206607.txt.gz · Dernière modification : 2023/04/11 11:50 de admin