Exemple de modèle d'accès aux données
<?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; }
Exemple de vues décomposées
<!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>
<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>
<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.
Exemple de contrôleur
<?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';