Je suis en train de réfléchir pour la mise au point d’un site dynamique assez complexe et j’hésite entre plusieurs façons de structurer l’arborescence et l’accès aux différents modules, pour que ce soit clair, sûr et fonctionnel et organisé (pas trop le bordel dans les fichiers…). Je pense déjà faire un sous dossier par module (par exemple /livredor, /inscription…) et des dossiers communs (/include, /images, /scripts…).
Arbo d’exemple pour un module livre d’or :
/include : contient header.inc.php, footer.inc.php et des fonctions (connexion à la base, traitement de données…)
/livredor : contient les fichiers relatifs au livre d’or
index.php : accueil
Voici les différentes solutions que j’envisage, d’un point de vue un peu simplifié :
Solution 1 :
Un fichier index.php à la racine du site qui inclus un header, un footer et au milieu le corps de la page. La navigation se fait en passant le nom de la page par méthode GET (dans l’URL). index.php récupère cette variable et inclus la page correspondante, si aucune page n’est spécifiée, index inclus la page d’accueil. La variable est cependant testée ou doit faire partie d’une liste (dans un select case) afin de ne pas inclure de page externe au site.
Exemple : www.monsite.com/index.php?p=livredor, la page finale sera composée de /include/header.inc.php, /livredor/livredor.php et /include/footer.inc.php.
Avec variable GET : www.monsite.com/index.php?p=livredor&action=ajouter
Solution 2 :
Chaque sous dossier contient une page index.php qui inclus header, footer et le corps de la page.
Exemple : www.monsite.com/livredor, la page finale sera composée de …/include/header.inc.php …/include/footer.inc.php et livredor.php (qui se trouve dans le dossier /livredor). On n’a pas besoin de préciser de fichier, l’index.php de chaque module est chargé automatiquement.
Avec variable GET : www.monsite.com/livredor?action=ajouter
Problème : ça va être le bordel au niveau des liens relatifs, car une fois dans un module, il faut ajouter …/ pour charger un fichier de ce même module ou spécifier le fichier (ex : une fois dans le module livredor, c’est soit href="…/livredor?action=truc" soit href=“index.php?action=truc”).
Mais chaque module pourrait être indépendant (si on utilise index.php pour les liens en relatif).
Solution 3 :
Chaque sous dossier contient les pages relatives au module. A la racine du site se trouve une page par module : livredor.php, inscription.php… Chacune de ces pages inclus header, footer et le corps du module.
Exemple : www.monsite.com/livredor.php, la page finale sera composée de /include/header.inc.php /include/footer.inc.php et /livredor/livredor.php
Avec variable GET : www.monsite.com/livredor.php?action=ajouter
Problème : bordel à la racine du site
Solution 4 :
Mixe entre 2 et 3 :
Exemple : www.monsite.com/livredor/livredor.php, mais ça fait des URL à rallonge…
Autres précisions : je ne veux pas utiliser de frame et il y aura une interface admin qui pourra naviguer sur le site avec des fonctions supplémentaires (genre supprimer un message sur le livre d’or).
J’aimerais des URL assez courtes, une bonne organisation des modules, la possibilité de les utiliser ailleurs, une certaine sécurité, et assez rapide de développement. Pour le moment mon choix se porte plutôt sur la solution 2.
Vos avis, commentaires, suggestions sont les bienvenus !
Merci !