creer une architecture de site web simple
Par aurelien gerits le dimanche, 29 novembre 2009, 02:36 - tutoriel PHP - Lien permanent
Créer un site web commence par l'analyse de l'architecture des dossiers ou hiérarchie des dossiers.
La première chose qu'un développeur doit faire c'est la stratégie d'un développement durable et fiable, en gardant à l'esprit que l'application évoluera !
Que vous développez en procédural ou orienté objet ne change pas le fait qu'une bonne structure est importante au bon déroulement du développement.
Pour quel raison ?
La raison est simple, une maison bien rangée est une maison bien tenue.
Créer un site web est exactement la même chose, une fois structuré la maintenance, le bon déroulement de l'évolution de votre application est beaucoup plus simple.
Pourquoi remettre à demain ce que l'on peu faire immédiatement ?
une architecture simple:
Cette hiérarchie minimaliste est propre et simple pour le développement procédural ou orienté objet.
Télécharger le kit A pour avoir un aperçu simple et démarrer vos développements.
Dans un prochain billet, je détaillerai une structure MVC avec une approche très simpliste pour les débutants.
Et vous quel structure avez-vous ?
Commentaires
Un bon correcteur c'est aussi bien pratique
ne change pas le fait qu'une bonne
au lieu de
"ne change pas le fais qu'une bonne "
Effectivement pour le S => T .
Aucun commentaire sur l'architecture ?
Tu ne sépares pas les ressources publiques (images, css) de ce qui n'a pas besoin d'être accessible depuis l'extérieur du site. Pire, le fichier temp/error.log est accessible pour quiconque connait l'URL. Donc niveau sécurité... à moins de mettre des "Deny from all" partout dans la configuration du serveur web, je ne conseillerais absolument pas cette organisation de répertoires à des débutants.
Effectivement, il vaut mieux sortir du document root un max de choses quand on le peut. Pas toujours possible selon les types d'hébergements.
Dans cet exemple, je ne dispose pas les ressources public dans un dossier séparé étant une structure très basic.
Par contre, une structure de type MVC serai bien plus pratique et sécurisé.
Mas que proposez-vous en structure simple (pas style MVC) ? par exemple pour les logs ?
Placer les logs en dehors serai une bonne chose (inaccessible par url).
Bref j'en ai testé une bonne dizaine .
MVC ou pas, je pense que ce n'est pas une raison. Même avec une archi de type "1 page = 1 fichier php", les répertoires inc, temp ou lib devraient être en dehors du document root. Blinder les répertoires de htaccess est déconseillé si on peut faire autrement. Donc autant sortir tout ce qui n'a pas à être accessible directement par http.
Au delà de considérations de sécurité, ça permet aussi une certaine organisation puisque library/ par exemple pourrait être commun à d'autres sites sur le même compte.
Merci metagoto, un commentaire très instructif, constructif.
Le problème avec l'utilisation de répertoire externe c'est bien entendu les droits sur l'hébergement (suivant la société).
Je souhaite proposé un pack contenant la librairie pour les débutants afin de démarrer avec une structure très propre et ne plus détruire ma boite mail avec des questions sur ce sujet.
Je préfère détaillé le fonctionnement, la syntaxe plutôt que d'expliquer une structure bien pensée via mail.
mmmm peut être as-tu un schéma à me proposer ?
Un joli dessin détaille aussi bien que de longue parole :D
Bien à toi
Aurélien
Proposer un layout de directories ?
En gros, ce que tu as, mais avec si possible, et comme mentionné plus haut, inc/ library/ et temp/ en dehors du doc root. Ces derniers renommés d'ailleurs include/ lib/ et /tmp respectivement (juste une convention unix-like).
Quant aux fichiers, j'aurais juste tendance à dire que library/bootstrap.php ferait mieux d'être mergé avec _common.php le tout placé dans le subdir magixcjquery/ pour la simple raison que library/ est susceptible de contenir d'autres librairies tierces.
Tout à fais d'accord, je vais faire une mention pour les dossiers à placer en externe.
Cependant concernant le bootstrap, je l'ai donné à titre d'exemple car en général je m'en sert pour inclure d'autre lib supplémentaire (PHPEXCEL, Moteur de template, etc....)
En gros le fichier common ne sert qu'a inclure l'autoload de la lib, mais je vais voir comment améliorer de ce côté la.
Tes recommandations sont très constructive et je pense que beaucoup attendent la suite de l'évolution.
bien à toi
MOi j'ai apprecié cette architechture j'ai tout simplment renommer certains dossiers et ajouter un fichier "index.html " qui empeche de lister le contenu des dossier au cas ou...
Je pense pour des débutants ça ferait l'affaire en plus peu importe l'hébergeur ça marche.
Merci, je pense aussi qu'elle est suffisante pour les débutants étant un bon exercice.
J'ai mis à disposition ce matin une nouvelle version de la librairie et je pense mettre à jour l'architecture rapidement.
Les exemples suivront