HTML5 / CSS 2.x/3 / PHP / MySQL ...

Bien organiser son site

L'architecture orientée MVC est la solution adoptée par une majorité de sites web qui intègrent leur contenu au travers d'un script unique index.php.

Où mettre ses templates

Les templates correspondent à tous les scripts appelés depuis votre contrôleur, en général index.php. On place ces templates dans le répertoire templates.

Ces scripts n'ont pas une extension php ou html, mais se distinguent avec l'extension phtml. Il n'y a pas de norme, mais l'extension de fichier phtml est celle généralement utilisée pour indiquer que ce type de fichier contient du code HTML pouvant être complété avec du code PHP.

Voir: PHP comme moteur de templates.

Une des failles de sécurité avec l'extension phtml est qu'il est possible de voir le code source des templates:

http://www.monsite.com/templates/validationInscription.phtml

affichera tout le code source du template validationInscription.phtml.

On remédie à cette faille de sécurité en intégrant au répertoire templates un fichier .htaccess contenant ceci:

deny from all        

Si vous êtes sous Windows, il n'est pas possible de créer directement ce fichier .htaccess dans les dossiers contenant vos fichiers sources. Pour Windows, créez un fichier nommé htaccess.txt puis après transfert sur votre serveur, renommez-le en .htaccess.

Cette protection est simple et radicale et s'applique à tous les types de fichiers placés dans le répertoire templates.

Où mettre les fichiers css et images

On évitera de mettre les fichiers définissant les styles et les images à la racine du site. Pour chaque type de fichiers, on crée un répertoire spécifique:

Comme le contenu de ces répertoires doit être librement accessible, on n'y mettra pas de fichier .htaccess.

Où mettre les librairies

On désigne par librairies toutes les fonctions et classes d'usage générales et applicatives. En général, on les met dans un répertoire distinct, en général inc (pour fichiers à inclure).

Par exemple, votre site et le script index.php a besoin d'intégrer des paramètres constants, comme les codes d'accès aux bases de données. On peut mettre ces codes dans un fichier parameters.php et contenant par exemple ceci:

$baseLogin = "monlog";
$basePaswd = "AZERTY";
$maBase    = "annonces";

Si une page a besoin du centenu de ce fichier, il intégrera les informations de paramétrage de cette manière:

   <?php include 'inc/parameters.php'; ?>

Les fichiers d'un répertoire inc sont également protégés par un fichier .htaccess placé dans ce répertoire inc.

Plus généralement, on place un fichier .htaccess dans tous les répertoires non accessibles directement par le navigateur. Ainsi, les scripts JavaScripts sont généralement placés dans un répertoire js et dans ce répertoire js on ne met pas de fichier .htaccess parce que le navigateur coté client final doit pouvoir accéder à ce répertoire.

En résumé

Voici l'arborescence minimale pour commencer à bien structurer le contenu de votre premier site web. Ces répertoires sont à créer à partir de la racine de votre site web:

Ici, le répertoire logs est destiné à enregistrer toutes les actions spéciales:

Par exemple, dans notre modèle MVC simplifié, on charge un template après avoir testé l'existence de ce template. On peut tracer les pages dont le nom de fichier n'existe pas. Exemple, un client tente d'accéder à la page listePrix alors que la bonne page est listeDesPrix. Si on rajoute un script de traçage de ces erreurs d'accès à des templates qui n'existent pas, on retrouvera ces traces dans des fichiers spécialement enregistrés dans ce répertoire logs.

Le traçage des erreurs de chargement des templates est traité ici: traçage des erreurs dans un fichier log

Tous les articles sur ce thème