Aide en ligne

Organisation des fichiers d'un projet web

Travailler à la création d'un site internet intéractif qui n'est pas basé sur un framework imposant une structure rigide amène à mettre en place une arborescence maison. Dans ce cas, comment organiser au mieux une structure cohérente sur le système de fichiers du serveur?

Mettre en place une organisation des fichiers, c'est mettre en place:

Le chef de projet organise cette logique afin d'obtenir des gains qui y sont associés. Parfois, ces règles auront été rédigées par un architecte logiciel afin d'être appliquées à plusieurs projets similaires.

Objectif

Gains divers:

Pour les deux types de rôles, on constate une réduction de la charge de travail.

Enumération des catégories de fichiers

Les points d'entrée: il s'agit des scripts exécutés par le serveur lorsqu'une page est appelée, dans un projet web.

Les feuilles de styles: contiennent les styles du projet. Peuvent contenir des styles globaux, communs à un ensemble de points d'entrée ou spécifiques à un seul point d'entrée.

Les bibliothèques de fonctions javascript: de façon similaire aux styles, ces fichiers peuvent être globaux, communs à un ensemble de points d'entrée ou spécifiques à un seul point d'entrée.

Les script Ajax: effectuent des actions et retournent des données à une page générée par un point d'entrée.

Les classes frontières (vue, ihm): dans un projet web les points d'entrée font souvent office de frontière mais dans certains cas, lorsque des éléments de la vue sont communs à plusieurs points d'entrée, il est bon de factoriser ces élements dans des classes à part.

Les classes contrôleurs: détiennent la logique des enchainements des cas d'utilisation.

Les classes métier (modèle):  ces classes permettent de manipuler les entités correspondant à la logique fonctionnelle du projet. On peut y trouver la classe manipulant l'entité unitaire, et une classe gérant les collections de cette entité.

Les classes interfaces (outils): ont souvent un rôle transverse. Exemple: envoi de mail, gestion de fichiers sur le serveur.

Les tache planifiées (cron): prévus pour être déclenchés à des moments précis et ou réguliers, ces scripts exécutés en fond peuvent avoir divers rôles.

Méthode 1 - Regroupement par catégories de fichiers

Regrouper les fichiers en fonction de leur catégorie a un effet structurant. Pour avoir en plus une vision modulaire, utiliser un nom de fichier identique pour plusieurs types de fichiers.

. / point_d_entree1.php
. / point_d_entree2.php
. / point_d_entree3.php

. / view / viewelement1.class.php
. / view / viewelement2.class.php

. / controler / controler1.class.php
. / controler / controler2.class.php

. / model / user.class.php
. / model / userCollection.class.php
. / model / product.class.php
. / model / productCollection.class.php

. / classes / mail.class.php

. / styles / global.css
. / styles / point_d_entree1.css
. / styles / point_d_entree2.css
. / styles / point_d_entree3.css
. / styles / viewelement1.css
. / styles / viewelement2.css

. / js / global.js
. / js / point_d_entree1.js
. / js / point_d_entree2.js
. / js / point_d_entree3.js
. / js / viewelement1.js
. / js / viewelement2.js

. / ajax / point_d_entree1.ajax.php
. / ajax / point_d_entree2.ajax.php
 

Méthode 2 - Regroupement par modules

Dans ce type d'organisation, les fichiers sont regroupés en fonction de leur point d'entrée ce qui offre une vision modulaire du projet. Cette segmentation donne plus d'indépendance à chacun des modules. L'avantage est une plus grande autonomie pour le développeur. L'inconvénient est qu'on ne favorise pas l'uniformité du projet.

. / point_d_entree1 / point_d_entree1.php
. / point_d_entree1 / point_d_entree1.css
. / point_d_entree1 / point_d_entree1.js
. / point_d_entree1 / point_d_entree1.ajax.php

. / point_d_entree2 / point_d_entree2.php
. / point_d_entree2 / point_d_entree2.css
. / point_d_entree2 / point_d_entree2.js
. / point_d_entree2 / point_d_entree2.ajax.php

. / viewelement1 / viewelement1.class.php
. / viewelement1 / viewelement1.css
. / viewelement1 / viewelement1.js
. / viewelement1 / viewelement1.ajax.php

. / viewelement2 / viewelement2.class.php
. / viewelement2 / viewelement2.css
. / viewelement2 / viewelement2.js
. / viewelement2 / viewelement2.ajax.php

. / model / user.class.php
. / model / userCollection.class.php
. / model / product.class.php
. / model / productCollection.class.php

. / global.css
. / global.js

En fin de compte d'autres techniques de structuration sont possibles lorsqu'on est créateur de site internet en phase d'analyse et de conception du projet. Pour toute suggestion contactez le webmaster du site.

 

 

 

 

Copyright 2007 - 2024