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 :
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
...
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.
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
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';
init.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';
constantes.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');
accueil.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'; 
 
?>
haut.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
<?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>
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
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)
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>
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
<?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 !