• 15 heures
  • Moyenne

Ce cours est visible gratuitement en ligne.

Vous pouvez obtenir un certificat de réussite à l'issue de ce cours.

J'ai tout compris !

Mis à jour le 11/06/2019

Organiser en dossiers

Connectez-vous ou inscrivez-vous gratuitement pour bénéficier de toutes les fonctionnalités de ce cours !

On commence à avoir un sacré nombre de fichiers mélangés dans un même dossier !

Nos fichiers tous mélangés à la racine du projet. Berk !
Nos fichiers tous mélangés à la racine du projet. Berk !

Si on continue à ajouter des pages, on va se retrouver avec de nouveaux contrôleurs, de nouvelles vues... ça va vite devenir compliqué de s'y retrouver !

Il est temps de faire un peu de rangement ! 🗂

Créer les dossiers

Je pense que ça serait bien d'adopter déjà au minimum l'organisation suivante, qu'on peut retrouver dans un certain nombre projets :

  • controller/ : le dossier qui contient nos contrôleurs.

  • view/ : nos vues.

  • model/ : notre modèle.

  • public/ : tous nos fichiers statiques publics. On pourra y mettre à l'intérieur un dossier css/, images/, js/, etc.

Il ne restera en fait que le fichier index.php (notre routeur) à la racine... parce qu'il faut bien appeler un fichier à la base !

Avec un peu de tri, on devrait se retrouver avec l'organisation suivante :

Un peu d'ordre, ça fait du bien !
Un peu d'ordre, ça fait du bien !

Vous noterez que  indexView.php  qui était à la racine a été déplacé et renommé  listPostsView.php  pour mieux décrire ce que fait cette vue.

Regrouper par sections du site

Hum, mais c'est bizarre non d'avoir controller/controller.php et model/model.php ? 🤔

Vous commencez à avoir de bons réflexes, j'aime ça ! 😁

En effet, c'est plutôt curieux de n'avoir qu'un seul fichier à l'intérieur pour le contrôleur et le modèle, surtout s'ils ont le même nom que le dossier. En fait, ça nous donne la place de nous étendre quand le site va grossir. L'idée sera de regrouper les contrôleurs, modèles (et même les vues) dans des sections, en fonction des différentes grandes "zones du site".

Si sur mon site j'ai un espace "blog", un espace "forum", un espace "members", je pourrais regrouper les fonctions dans des fichiers au nom de ces sections.

Pour notre blog, je vous propose un autre découpage :

  • frontend : tout ce qui est côté utilisateur. Affichage des billets, ajout et liste des commentaires...

  • backend : tout ce qui est pour les administrateurs. Création de billets, modération des commentaires...

Pour l'instant, on n'a codé que le côté frontend, donc on n'aura qu'une section. Mais par la suite si votre site grossit, vous serez heureux de pouvoir un peu découper par section !

Au final, ça nous donne donc le code suivant :

Le code est regroupé par sections. Pour l'instant, nous avons une seule section : frontend
Le code est regroupé par sections. Pour l'instant, nous avons une seule section : frontend

Voilà ! Nous avons donc un modèle pour le frontend, un contrôleur pour le frontend, et plusieurs vues regroupées dans un dossier view/frontend !

Essayez !

Voyez par vous-même notre nouveau code. On n'a fait que regrouper dans des dossiers, mais la structure a déjà bien évolué et devrait vous paraître plus claire !

https://www.codevolve.com/api/v1/publishable_key/2A9CAA3419124E3E8C3F5AFCE5306292?content_id=d8ac847c-d94c-4ccc-bed1-73e3a61752ee

Exemple de certificat de réussite
Exemple de certificat de réussite