Bonjour la communauté.
Je souhaite qu'on regarde si je respecte la base du MVC et voir si mon contrôleur est correcte.
Ma stucture MVC de base, le contrôleur est l'index.php en racine.
Je ne suis pas certain pour le contrôleur.
Ce sont les objet extanciés que j'ai mis là.
Je ne suis pas un expert alors je voudrais qu'on en tienne compte SVP. Merci. Je me casse la tête
depuis très longtemps, j'ai besoin de l'aide sur mon problème.
Structure de base:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 index.php /MODEL/ connexion.php model.php /VIEW/ layout.php template.php style.css
index.php contient qui serait mon contrôleur:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 <?php require_once './model/model.php'; $oArtiste = new Artiste($cxn); $ListerArtistes = $oArtiste->lister(); $artiste_id = (empty($_GET['artiste']))?'1':(int)$_GET['artiste']; $AfficherArtistes = $oArtiste->afficher($artiste_id); require './view/template.php';
connexion.php partie model:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 <?php $dnsh = "mysql:host=localhost;dbname=ptg"; $user = "root"; $pass = ""; $cxn = new PDO($dnsh, $user, $pass); $cxn ->setAttribute(PDO::ATTR_PERSISTENT,true); //a le même effet qu'un singleton, sans les inconvénients $cxn ->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
model.php partie model:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 <?php include './model/connexion.php'; class Artiste{ private $_conn; public function __construct($cxn){ $this->_conn = $cxn; } public function lister(){ $stmt = $this->_conn->prepare('SELECT * FROM artistes'); $stmt->execute(); return $stmt->fetchAll(PDO::FETCH_OBJ); } public function afficher($id=null){ $stmt = $this->_conn->prepare('SELECT * FROM artistes WHERE id = :id'); $stmt->bindParam(':id', $id, PDO::PARAM_INT); $stmt->execute(); return $stmt->fetchAll(PDO::FETCH_OBJ); } }
layout.php partie view:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <!--[if lt IE 9]><script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]--> <title></title> <meta name="keywords" content="" /> <meta name="description" content="" /> <link href="./view/style.css" rel="stylesheet"> </head> <body> <?php echo $content; ?> </body> </html>
template.php partie view:
Ici, je compte faire des sous-couches mais je me demande si c'est pertinent.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 <?php ob_start() ?> <div class="wrapper"> <header class="header"> </header><!-- .header--> <div class="middle"> <div class="minheight"> <div class="container"> <main class="content"> <?php foreach($AfficherArtistes as $a_artiste) { echo $a_artiste->id ." ". $a_artiste->prenom ." ". $a_artiste->nom; } ?> </main><!-- .content --> </div><!-- .container--> <aside class="left-sidebar"> <main class="content"> <?php foreach($ListerArtistes as $l_artiste) { echo "<a href='http://localhost/index.php?artiste=" . $l_artiste->id . "'>".$l_artiste->prenom ." ". $l_artiste->nom . "</a></br>"; } ?> </main><!-- .content --> </aside><!-- .left-sidebar --> </div><!-- .minheight--> </div><!-- .middle--> <footer class="footer"> </footer><!-- .footer --> </div><!-- .wrapper --> <?php $content = ob_get_clean(); ?> <?php include './view/layout.php'; ?>
Partager