Bonsoir chers amis développeurs,
Je suis actuellement entrain développer mon blog perso, celui-ci reposant sur les technologies web actuels (HTML, CSS, PHP, etc ...).
Pour l'architecture de ce dernier, je me suis tourné vers du MVC, cela me donne l'occasion de l'appréhender, ce qui n'est pas un mal tant ce pattern est répandu !
Toutefois, après m'être renseigné sur le MVC et avoir commencé a développer en suivant ce modèle, j'en viens à me demander si je développe vraiment en MVC, car d'après ce que je vois même si le MVC reste dans les grandes lignes identiques, chaque document que je lis au sujet du MVC montre un MVC construit differemment de l'autre, j'ai l'impression que chacun a son MVC, par conséquent, j'ai du mal à identifier mon code à ce pattern.
Pour vous donner de la matière à juger, voici un exemple du code d'un de mes controleurs et de sa vue correspondante.
Controleur :
Comme vous pouvez le constater mon contrôleur est en réalité la page qui est appelé lors du clic sur un lien.
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
41
42
43 <?php //Configuration file require_once 'config.php'; //head require_once 'header.php'; ?> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script> <script type="text/javascript" src="<?php print JSPATH; ?>/jquery.colorbox.js"></script> </head> <body> <div id="wrapper"> <div id="header"><?php //Menu require_once 'top.php'; ?></div> <?php //Class instanciation $portfolio = new portfolio($dbLink); //If portfolioId defined, display matching portfolio if(isset($_GET['portfolioId'])) { $portfolioRessource = $portfolio->getSinglePortfolio($_GET); $portfolioElementsRessource = $portfolio->getPortfolioFiles($_GET); require_once 'portfolioview.php'; } else // Otherwise, display all portfolios { $portfolioRessource = $portfolio->getPortfolios(); $portfoliosFirstPicsRessource = $portfolio->getPortfoliosFirstPic(); require_once 'portfoliosview.php'; } ?></div> <div style="clear: both;"> </div> <div id="footer"><?php //Website's footer require_once 'footer.php'; ?></div> </body> </html>
Ensuite la vue :
Cette vue affiche tous les portfolios.
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56 <div id="main"> <div id="portfolio"> Portfolios <table id="portfolios-chart"> <tr> <?php $nbPortfolios = $portfolioRessource->rowCount(); $portfoliosFirstPicsArray = $portfoliosFirstPicsRessource->fetchAll(); for($i=1; $i<=$nbPortfolios; $i++) { $portfolioArray = $portfolioRessource->fetch(); $rowId = jb::bidimensionnalArraySearch($portfoliosFirstPicsArray, $portfolioArray['id']); print '<td id = "portfolio-square'.($i).'" style = "background: url(\'portfolios/'.$portfolioArray['portfolioFolder'].'/thumbs/thumb-'.$portfoliosFirstPicsArray[$rowId]['filename'].'\') no-repeat center; width: 200px; height: 200px; max-width: 200px; max-height: 200px;"><a href = "portfolio.php?portfolioId='.$portfolioArray['id'].'" style="display:block;width:100%;height:100%;"><p class = "portfolioTitle'.($i).'">'.$portfolioArray['portfolioTitle'].'</p></a></td>'; if((($i%3)==0)) { print '</tr><tr>'; } } ?> </table> <script type="text/javascript"> <?php for($i=1; $i<=$nbPortfolios; $i++) { print " $('.portfolioTitle".($i)."').hide(); $('#portfolio-square".($i)."').mouseenter(function() { if($('#portfolio-square".($i)."').queue().length == 0) { $('#portfolio-square".($i)."').fadeTo('slow', 0.5); $('.portfolioTitle".($i)."').show('slow', 'linear'); } }); $('#portfolio-square".($i)."').mouseleave(function() { if($('#portfolio-square".($i)."').queue().length < 2) { $('#portfolio-square".($i)."').fadeTo('slow', 1); $('.portfolioTitle".($i)."').hide('slow', 'linear', function() { $('.portfolioTitle".($i)."').clearQueue();}); } }); "; } ?> </script></div> </div> <div id="sidebar"><?php require_once("sidebar.php"); ?></div>
Pour ce qui est du modèle, il s'agit en réalité de classes métiers qui accèdent à la base de données entre autres.
Est ce que mon approche du MVC est correcte ? Ou dois je corriger des choses ?
Si oui lesquels ?
Merci.
Cordialement,
J.BENOIT
Partager