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

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 = 'view-erreur.php';
		}
		else {
			$contenu = 'view-demande1.php';
		}
	}
	elseif ($action == 'demande2') {
		// accès aux données
		$sql2 = 'SELECT col1 col2, FROM table2';
		$data = pdo_query($sql2);
		if ($data === false) {
			$contenu = 'view-erreur.php';
		}
		else {
			$contenu = 'view-demande2.php';
		}
	}
	else {
		$contenu = 'view-accueil.php';
	}
 
	$menu = 'view-menu.php';
	include 'view-charte.php';
bloc2/prog/web/mvc-exemple.1681205996.txt.gz · Dernière modification : 2023/04/11 11:39 de admin