Amis développeurs.euses bonjour,
Je suis actuellement en formation pro développeur et nous étudions en ce moment le MVC en php. Du coup je me suis lancé dans un petit excercice pour m’entraîner et essyer d'aller un peu plus loin. Seulement voila on se retrouve vite submergé de fichiers si on s'y prend mal c'est pourquoi je viens vers vous. Grosso modo j'ai un soucis de philosophie.
1er exemple d'architecture qui me pose soucis :
SOLUTION A :
Controler : control.php
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72 <?php require_once "class/database.php"; class component{ public function recupCotes(){ //appel de la base de donnée et des routes $connexion = new database(); $routeComposant = new chemin_acces(); //connexion à la base de donnée $numeroConnexion = $connexion->connect($routeComposant->connect("host"), $routeComposant->connect("login") , $routeComposant->connect("psw") , $routeComposant->connect("name")); //Chemin vers la base de donnée $spathSQL = $routeComposant->connect("sql")."/recup_blabla.sql"; //Récupération des données sql $parieur = $connexion->getSelectDatas($numeroConnexion, $spathSQL, array()); $recupCote = ""; for($i=0;$i<count($parieur);$i++){ $recupCote .= "<div class = \"resultatRecupCote\"> <div class = \"resultatDate\">" .$parieur[$i]["date_match"]. "</div> <div class = \"resultatMatch\"> <div class = \"resultatEquipe\">" .$parieur[$i]["domicile"]. " - " .$parieur[$i]["exterieur"]. "</div> <div class = \"resultatHeure\">" .$parieur[$i]["heure_match"]. "</div> </div> <div class =\"resultatCote\"> <div class =\"resultat\"> <div class= \"resultatType\"> Victoire </div> <div class= \"resultatCoteContent\"> <input class=\"buttonCote\" type=\"button\" value=".$parieur[$i]["cote_victoire"]."> </div> </div> <div class =\"resultat\"> <div class= \"resultatType\"> Nul </div> <div class= \"resultatCoteContent\"> <input class=\"buttonCote\" type=\"button\" value=".$parieur[$i]["cote_nul"]."> </div> </div> <div class =\"resultat\"> <div class= \"resultatType\"> Defaite </div> <div class= \"resultatCoteContent\"> <input class=\"buttonCote\" type=\"button\" value=".$parieur[$i]["cote_defaite"]."> </div> </div> </div> </div>"; }; require_once $routeComposant->connect("html")."/module/blabla.html"; $connexion->close($numeroConnexion); } }
vue : blabla.htm
SOLUTION B :
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<div class = "headerRecupCote"> <div class = "logoHeaderRecupCote"> <img src="img/logo_blabla.png"> </div> <div class = "emptyHeaderRecupCote"> </div> </div> <div class = "selectedRecupCote"> <form class = "formselectedRecupCote" method="POST" action=""> <div class = "containSelectRecupCote"> <select class="choiceCote"> <option value = "1">V-N-D</option> </select> </div> <div class = "containSelectRecupCote"> <select class="choiceMatch"> <option value = "1">TOUS</option> </select> </div> </form> </div> <div class = "allCote"> <?php echo $recupCote?> </div>
controler : control.php
vue : blabla.html
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 <?php require_once "class/database.php"; class component{ public function recupCotes(){ //appel de la base de donnée et des routes $connexion = new database(); $routeComposant = new chemin_acces(); //connexion à la base de donnée $numeroConnexion = $connexion->connect($routeComposant->connect("host"), $routeComposant->connect("login") , $routeComposant->connect("psw") , $routeComposant->connect("name")); //Chemin vers la base de donnée $spathSQL = $routeComposant->connect("sql")."/recup_blabla.sql"; //Récupération des données sql $parieur = $connexion->getSelectDatas($numeroConnexion, $spathSQL, array()); require_once $routeComposant->connect("html")."/module/blabla.html"; $connexion->close($numeroConnexion); } }
Du coup je me demandais si il y'avait une pratique meilleure qu'une autre ou si aucune de ces deux solutions n'était bonne
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73 <div class = "headerRecupCote"> <div class = "logoHeaderRecupCote"> <img src="img/logo_blabla.png"> </div> <div class = "emptyHeaderRecupCote"> </div> </div> <div class = "selectedRecupCote"> <form class = "formselectedRecupCote" method="POST" action=""> <div class = "containSelectRecupCote"> <select class="choiceCote"> <option value = "1">V-N-D</option> </select> </div> <div class = "containSelectRecupCote"> <select class="choiceMatch"> <option value = "1">TOUS</option> </select> </div> </form> </div> <div class = "allCote"> <?php for($i=0;$i<count($parieur);$i++){ "<div class = \"resultatRecupCote\"> <div class = \"resultatDate\">" .$parieur[$i]["date_match"]. "</div> <div class = \"resultatMatch\"> <div class = \"resultatEquipe\">" .$parieur[$i]["domicile"]. " - " .$parieur[$i]["exterieur"]. "</div> <div class = \"resultatHeure\">" .$parieur[$i]["heure_match"]. "</div> </div> <div class =\"resultatCote\"> <div class =\"resultat\"> <div class= \"resultatType\"> Victoire </div> <div class= \"resultatCoteContent\"> <input class=\"buttonCote\" type=\"button\" value=".$parieur[$i]["cote_victoire"]."> </div> </div> <div class =\"resultat\"> <div class= \"resultatType\"> Nul </div> <div class= \"resultatCoteContent\"> <input class=\"buttonCote\" type=\"button\" value=".$parieur[$i]["cote_nul"]."> </div> </div> <div class =\"resultat\"> <div class= \"resultatType\"> Defaite </div> <div class= \"resultatCoteContent\"> <input class=\"buttonCote\" type=\"button\" value=".$parieur[$i]["cote_defaite"]."> </div> </div> </div> </div>"; }; ?> </div>
Ma deuxième question porte plus sur un aspect technique. En effet j'aimerais intégrer ma vue blabla.html dans une autre vue. Et c'est à partir de la que je sens comme un malaise dans l'architecture de mon code
controler : main.php
vue : accueil.html
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 <?php require_once "class/route.php"; require_once "class/component.php"; // initialise les différentes routes $chemin = new chemin_acces(); // initialise un object composant $composant = new component(); // Affiche la vue de l'acueil require_once $chemin->connect("html")."/accueil.html"; ?>
Le seul moyen que j'ai trouvé pour ne pas faire comme ça et d'enregistrer toute ma vue blabla.html dans une variable retourner par la méthod $composant->recupCotes(). Çà donnerait ça du coup
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<html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title>Accueil </title> <meta name="Accueil" content="introduction"> <link rel="stylesheet" href="css/main.css"> <link rel="stylesheet" href="css/moduleRecupCote.css"> </head> <body> <header> </header> <section id="sectionAccueil"> <aside id="asideAccueil"> </aside> <article id="articleAccueil"> <div class="moduleRecupCote"> <?php $composant->recupCotes(); ?> <!--appel de la méthode -> </div> </article> </section> </body> </html>
component.php
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96 <?php require_once "class/database.php"; class component{ public function recupCotes(){ //appel de la base de donnée et des routes $connexion = new database(); $routeComposant = new chemin_acces(); //connexion à la base de donnée $numeroConnexion = $connexion->connect($routeComposant->connect("host"), $routeComposant->connect("login") , $routeComposant->connect("psw") , $routeComposant->connect("name")); //Chemin vers la base de donnée $spathSQL = $routeComposant->connect("sql")."/recup_cote_betclic.sql"; //Récupération des données sql $parieur = $connexion->getSelectDatas($numeroConnexion, $spathSQL, array()); $recupCote = "<div class = \"headerRecupCote\"> <div class = \"logoHeaderRecupCote\"> <img src=\"img/logo_blabla.png\"> </div> <div class = \"emptyHeaderRecupCote\"> </div> </div> <div class = \"selectedRecupCote\"> <form class = \"formselectedRecupCote\" method=\"POST\" action=\"\"> <div class = \"containSelectRecupCote\"> <select class=\"choiceCote\"> <option value = "1">V-N-D</option> </select> </div> <div class = \"containSelectRecupCote\"> <select class=\"choiceMatch\"> <option value = \"1\">TOUS</option> </select> </div> </form> </div> <div class = \"allCote\"> ; for($i=0;$i<count($parieur);$i++){ $recupCote .= "<div class = \"resultatRecupCote\"> <div class = \"resultatDate\">" .$parieur[$i]["date_match"]. "</div> <div class = \"resultatMatch\"> <div class = \"resultatEquipe\">" .$parieur[$i]["domicile"]. " - " .$parieur[$i]["exterieur"]. "</div> <div class = \"resultatHeure\">" .$parieur[$i]["heure_match"]. "</div> </div> <div class =\"resultatCote\"> <div class =\"resultat\"> <div class= \"resultatType\"> Victoire </div> <div class= \"resultatCoteContent\"> <input class=\"buttonCote\" type=\"button\" value=".$parieur[$i]["cote_victoire"]."> </div> </div> <div class =\"resultat\"> <div class= \"resultatType\"> Nul </div> <div class= \"resultatCoteContent\"> <input class=\"buttonCote\" type=\"button\" value=".$parieur[$i]["cote_nul"]."> </div> </div> <div class =\"resultat\"> <div class= \"resultatType\"> Defaite </div> <div class= \"resultatCoteContent\"> <input class=\"buttonCote\" type=\"button\" value=".$parieur[$i]["cote_defaite"]."> </div> </div> </div> </div>"; }; $recupCote .= "</div>"; $connexion->close($numeroConnexion); return $recupCote; // retourne tout le html généré } } ?>
controler : main.php
Et du coup la vue accueil.html
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 <?php require_once "class/route.php"; require_once "class/component.php"; // initialise les différentes routes $chemin = new chemin_acces(); $composant = new component(); $retourneCote = $composant->recupCotes() // Affiche la vue de l'accueil require_once $chemin->connect("html")."/accueil.html"; ?>
Du coup voila je me suis quand même bien tourné les méninges avant de venir vous voir et j’espère que vous aurez compris mes problèmes techniques et philosophiques. Je vous remercie d'avance pour les conseils et corrections
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<html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title>Accueil </title> <meta name="Accueil" content="introduction"> <link rel="stylesheet" href="css/main.css"> <link rel="stylesheet" href="css/moduleRecupCote.css"> </head> <body> <header> </header> <section id="sectionAccueil"> <aside id="asideAccueil"> </aside> <article id="articleAccueil"> <div class="moduleRecupCote"> <?php echo $retourneCote ?> // Recois la retour de la méthod $composant->recupCotes() </div> </article> </section> </body> </html>
Partager