bloc2:prog:web:mvc-exemple
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| bloc2:prog:web:mvc-exemple [2023/03/29 14:34] – supprimée - modification externe (Unknown date) 127.0.0.1 | bloc2:prog:web:mvc-exemple [2023/04/11 11:50] (Version actuelle) – [Vue] admin | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| + | ====== Exemple MVC en PHP ====== | ||
| + | ===== Modèle ===== | ||
| + | Exemple de modèle d' | ||
| + | <code php dataAccess.php> | ||
| + | <?php | ||
| + | |||
| + | define(" | ||
| + | define(" | ||
| + | define(" | ||
| + | define(" | ||
| + | |||
| + | // 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(' | ||
| + | |||
| + | // exécution de la requête | ||
| + | $stmt = $cnx-> | ||
| + | if ($stmt !== false) { | ||
| + | // extraction des résultats dans un tableau | ||
| + | $result = $stmt-> | ||
| + | } | ||
| + | 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(' | ||
| + | |||
| + | // exécution de la requête | ||
| + | $result = $cnx-> | ||
| + | } catch (Exception $e) { | ||
| + | $result = false; | ||
| + | } | ||
| + | |||
| + | // fermeture de la connexion | ||
| + | unset($cnx); | ||
| + | |||
| + | return $result; | ||
| + | } | ||
| + | </ | ||
| + | ===== Vue ===== | ||
| + | Exemple de vues décomposées | ||
| + | <code php vue-charte.php> | ||
| + | < | ||
| + | <html lang=" | ||
| + | < | ||
| + | <meta charset=" | ||
| + | <link rel=" | ||
| + | < | ||
| + | </ | ||
| + | < | ||
| + | <nav> | ||
| + | <?php include $menu; ?> | ||
| + | </ | ||
| + | < | ||
| + | <?php include $contenu; ?> | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | <code html vue-menu.php> | ||
| + | < | ||
| + | <ul> | ||
| + | < | ||
| + | < | ||
| + | </ul> | ||
| + | </ | ||
| + | <code html vue-accueil.php> | ||
| + | < | ||
| + | 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, | ||
| + | le Lorem ipsum ou Lipsum. | ||
| + | </ | ||
| + | |||
| + | ===== Contrôleur ===== | ||
| + | Exemple de contrôleur | ||
| + | <code php index.php> | ||
| + | <? | ||
| + | include " | ||
| + | |||
| + | $action = filter_input(INPUT_GET, | ||
| + | |||
| + | if ($action == ' | ||
| + | // accès aux données | ||
| + | $sql1 = ' | ||
| + | $data = pdo_query($sql1); | ||
| + | if ($data === false) { | ||
| + | $contenu = ' | ||
| + | } | ||
| + | else { | ||
| + | $contenu = ' | ||
| + | } | ||
| + | } | ||
| + | elseif ($action == ' | ||
| + | // accès aux données | ||
| + | $sql2 = ' | ||
| + | $data = pdo_query($sql2); | ||
| + | if ($data === false) { | ||
| + | $contenu = ' | ||
| + | } | ||
| + | else { | ||
| + | $contenu = ' | ||
| + | } | ||
| + | } | ||
| + | else { | ||
| + | $contenu = ' | ||
| + | } | ||
| + | |||
| + | $menu = ' | ||
| + | include ' | ||
| + | </ | ||
