Salut,
**Désolé je ne savais pas ou poster ce message**
Je vais vous montrer la hiérarchie de mon code afin de le confronter au design pattern MVC afin de me donner vos remarques pour voir si mon architecture est "viable".Ça ressemble un peu à du MVC.
Disons que c'est une architecture que j'utilise depuis longtemps et que je trouve très simple (pour moi) donc j'hésite à passer à une conception MVC pure.
Je l'utilise quand je code en spécifique sinon j'utilise Symfony2 donc ça me change on va dire.
Supposons je lance "index.php"
->Dans le fichier Index j'inclue mon template (canevas.php)(juste un include)
-> Dans ce canevas
Dans configuration (une sorte de controleur frontal)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 <?php include($_SERVER['DOCUMENT_ROOT'].'/Php/Configuration.php'); include($_SERVER['DOCUMENT_ROOT'].'/Php/Gestion_controller.php'); ?> [Mon code html] <?php (file_exists(TEXTE))?include(TEXTE):0;?> [Mon code html]
Dans Gestion_controller
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 define("TEXTE",$_SERVER['DOCUMENT_ROOT'].'/Txt/'.basename($_SERVER["PHP_SELF"])); define("ERROR",'/erreur404.php'); define("SEARCH",'/recherche.php'); define("URL",$_SERVER['REQUEST_URI']); define("SCRIPT",$_SERVER["PHP_SELF"]); define("DOMAINE",$_SERVER['HTTP_HOST']); define("IP",$_SERVER["REMOTE_ADDR"]); //Chargement des classes function chargerClasse ($classe) { [Moncode] } spl_autoload_register ('chargerClasse'); session_start(); $menuManager = new MenuManager(Database::getInstance()); $produitManager = new ProduitManager(Database::getInstance()); $clientManager = new ClientManager(Database::getInstance()); $panierManager = new PanierManager(Database::getInstance()); function urlRedirect($menuManager,$produitManager) { $aux=0; if(SCRIPT==GAMME && isset($_GET['id']) && isset($_GET['gammes'])) { if(!($aux=$menuManager->get((int)$_GET['id']))) { header("HTTP/1.1 410 Gone"); echo file_get_contents("http://".DOMAINE.ERROR); } else { if(current(explode('?', URL, 2))!=($r_url=Menu::verification_menu($aux))) { header('HTTP/1.1 301 Moved Permanently', false, 301); header('Location: http://'.DOMAINE.$r_url.''); } } } else if(SCRIPT==MENU_PRINCIPAL && isset($_GET['id']) && isset($_GET['gammeprincipal'])) { if(!($aux=$menuManager->getPrincipal((int)$_GET['id']))) { header("HTTP/1.1 410 Gone"); echo file_get_contents("http://".DOMAINE.ERROR); } else if(current(explode('?', URL, 2))!=($r_url=Menu::verification_menu_principal($aux))) { header('HTTP/1.1 301 Moved Permanently', false, 301); header('Location: http://'.DOMAINE.$r_url.''); } } if(!$aux) { (!isset($cmsManager))?$cmsManager = new CmsManager(Database::getInstance()):0; $aux=(pathinfo(SCRIPT, PATHINFO_FILENAME)==pathinfo(ERROR, PATHINFO_FILENAME))?$cmsManager->get(pathinfo(SCRIPT, PATHINFO_FILENAME),CmsManager::DYNAMIQUE):$cmsManager->get(pathinfo(parse_url(URL, PHP_URL_PATH), PATHINFO_FILENAME),CmsManager::DYNAMIQUE); } if(!$aux) { header("HTTP/1.1 410 Gone"); echo file_get_contents("http://".DOMAINE.ERROR); } return $aux; } //Cela sert a rediriger vers la bonne page si url comporte erreur, rediriger vers la bonne. $obj=urlRedirect($menuManager,$produitManager);
Exemple d'un "controller"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 <?php require_once($_SERVER['DOCUMENT_ROOT'].'/Php/Controller/AjoutProduitController.php'); require_once($_SERVER['DOCUMENT_ROOT'].'/Php/Controller/CreationSuiviCommandeController.php'); require_once($_SERVER['DOCUMENT_ROOT'].'/Php/Controller/ModificationSuiviCommandeController.php'); ?>
Exemple d'une vue
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 <?php //PANIER CODE PROMOTIONNEL if(isset($_POST['validation_code_promotion'])) { $validated = Gump::is_valid($_POST,array('code_promotion'=>'required|min_len,2')); if($validated === true) { $ReductionManager = new ReductionManager(Database::getInstance()); $_SESSION['reduction']=$ReductionManager->verificationReduction($_POST['code_promotion'],$_SESSION['panier']->totalPanierTTC()); } } ?>
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 <?php include($_SERVER['DOCUMENT_ROOT'].'/headerslider.php'); ?> <div id="arborescence"><?php echo Menu::arbre_menu($Cms->texte()); ?></div> <div class="article"> <?php echo $Cms->description_1(); ?> </div> <?php if(!$Cms->contact()) echo($Cms->description_2())?"<div class=\"article\">".$Cms->description_2()."</div>":""; else { include($_SERVER['DOCUMENT_ROOT'].'/formContact.php'); echo "<div class=\"article mini_article\">"; echo $Cms->description_2(); echo "</div>"; } ?>
Partager