Bonjour
Je suis en train de faire un site internet pour une amie et j'essaie en même temps d'apprendre le modèle MVC. Je voudrais votre avis sur ce que j'ai fait, est-ce que j'ai compris la base ou pas ?
J'ai donc diviser mon code en plusieurs parties (modèles, vues et controleurs)
Voici mon arborescence :
MON PROBLEME : je n'arrive pas à mettre mes fichiers de vues dans le répertoire VUES. Quand je le fais, seul la page d'accueil réussi à s'ouvrir après j'ai des problèmes avec les chemin de fichier (il faut ajouter .// ou ../../) mais à ce moment-là mes chemins définis dans constantes ne me servent plus car cela ne fonctionnent plus... J'ai le même problème avec les fichiers jquery que je ne peux pas inclure dans le dossier JQUERY.tdr commun constantes.php index.php init.php controleurs entete.php index.php jquery.php images banniere banniere1.png menu index.php pages accueil coordonnees chaque dossier comporte les images correspondantes aux pages libs bdd bdd.php fonctions afficher afficher_photos.php traiter traitement.php jquery media telecharger pdf modeles tarifs requete_tarifs.php ... requetesql.php modules admin admin.php styles polices style_bases.css style_ie.css vues accueil.php admin.php banniere.php coordonnees.php enete.php haut.php index.php jquery.php menu.php monjquery.php pied.php presentation.php ...
Le seul moyen que j'ai trouvé (pour l'instant et cela ne me convient pas) c'est de tout mettre à la racine du site au niveau des vues et des fichiers jquery...
je vous mets le code de quelques fichiers principaux pour que vous me compreniez mieux :
index.php
init.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <?php // Initialisation require_once 'commun/init.php'; //On inclut la page d'accueil du site require_once VUES.'accueil.php';
constantes.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 <?php //Le fichier d'initialisation sera appelé sur toutes les pages depuis index.php, depuis l'emplacement ~/commun/ // Inclusion du fichier de configuration (qui définit des constantes) require_once 'commun/constantes.php';
accueil.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 <?php // Chemins à utiliser pour accéder aux répertoires define('CONTROL', 'controleurs/'); define('MODELE', 'modeles/'); define('COMMUN', '../commun/'); define('VUES',''); define('VUESADMIN','../../'); // Répertoire contenant les fichiers à accès restreints. define('RESTREINT', 'modules/admin'); define('LIB_FUNCTION', 'libs/fonctions/'); define('LIB_CLASSE', 'libs/classes/'); define('LIB_BDD', 'libs/bdd/'); define('LIB_JQUERY', 'libs/jquery/'); define('IMAGE_BAN', 'images/banniere/'); define('IMAGE_MENU', 'images/menu/'); define('IMAGE_ACCUEIL', 'images/pages/accueil/'); define('TARIF', 'modeles/tarifs/'); define('IMAGE_PRESENTATION', 'images/pages/presentation/'); define('IMAGE_FEMME', 'images/pages/femme/'); define('IMAGE_HOMME', 'images/pages/homme/'); define('IMAGE_MOIS', 'images/pages/mois/'); define('IMAGE_CONTACT', 'images/pages/contact/'); define('IMAGE_DEPLACE', 'images/pages/deplace/'); define('IMAGE_ONGLE', 'images/pages/onglerie/'); define('IMAGE_EFFIGIE', 'images/pages/effigie/'); define('IMAGE_MAQUILLAGE', 'images/pages/maquillage/'); define('MEDIA_PDF', 'media/telecharger/pdf/'); define('STYLE_BASE', 'styles/'); define('ADMIN','modules/admin/admin.php');
haut.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <?php require_once 'commun/init.php'; require_once VUES.'haut.php'; ?> <?php require_once VUES.'pied_accueil.php'; ?>
entete.php (controleurs)
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 <?php require_once VUES.'entete.php'; ?> <body oncontextmenu="return false" ondragstart="return false" > <div class="pages"> <header> <!-- tête de la page --> <?php afficher_haut_page($file); ?> <br> <br> <br> <br> </header>
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 <?php require_once LIB_FUNCTION.'afficher/afficher_google.php'; //affiche le logo google sur la page d'accueil seulement require_once LIB_FUNCTION.'afficher/afficher_titre.php'; //affiche le titre de la page en fonction du nom de la page affichée require_once LIB_FUNCTION.'afficher/afficher_styles.php'; /* affiche les fichiers de styles en fonction de la page*/ require_once LIB_FUNCTION.'afficher/afficher_haut_page.php'; /* affiche le haut de la page en fonction des pages*/ require_once LIB_FUNCTION.'menu/connaitre_page.php'; /*détermine quelle est la page affichée et renvoie le nom*/ require_once LIB_BDD.'bdd.php'; /*connexion à la base de données*/ require_once MODELE.'requetesql.php'; /*affichage des requetes liees a la bdd*/ require_once LIB_FUNCTION.'menu/afficher_partie_menu.php'; ?>
entete.php (vues)
requetesql.php (modeles)
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 !DOCTYPE html> <html> <head> <?php require_once CONTROL.'entete.php'; ?> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <?php $file = reconnaitre_page(); afficher_styles($file); ?> <!-- compatibilité avec ie 7, 8 et 9 --> <!--[if lt IE 9]> <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script> <![endif]--> <!--[if lte IE 7]> <link rel="stylesheet" href="styles/style_ie.css" /> <![endif]--> <!-- balises meta --> <meta name="title" content="titre du site" /> <meta name="description" content="description du site"> <meta name="keywords" content=" mots clés"> <meta name="robots" content="index"> <meta name="REVISIT-AFTER" content="14 days"> <meta http-equiv="Content-Language" content="fr"> <meta http-equiv="Pragma" content="no-cache"> <meta name="viewport" content="width=device-width" /> <meta name="google-site-verification" content=" " /> <?php afficher_google($file); ?> <title> <?php afficher_titre($file); ?> </title> </head>
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 <?php require_once LIB_FUNCTION.'afficher/afficher_google.php'; //affiche le logo google sur la page d'accueil seulement require_once LIB_FUNCTION.'afficher/afficher_titre.php'; //affiche le titre de la page en fonction du nom de la page affichée require_once LIB_FUNCTION.'afficher/afficher_styles.php'; /* affiche les fichiers de styles en fonction de la page*/ require_once LIB_FUNCTION.'afficher/afficher_haut_page.php'; /* affiche le haut de la page en fonction des pages*/ require_once LIB_FUNCTION.'menu/connaitre_page.php'; /*détermine quelle est la page affichée et renvoie le nom*/ require_once LIB_BDD.'bdd.php'; /*connexion à la base de données*/ require_once MODELE.'requetesql.php'; /*affichage des requetes liees a la bdd*/ require_once LIB_FUNCTION.'menu/afficher_partie_menu.php'; ?>
je pense que j'en ai trop mis, j'espère que c'est compréhensible, merci de votre indulgence !
Partager