Comprendre la structure d'une application Laravel - Letecode

Structure du projet

Dernière mise à jour : 16/06/2022

Dans ce chapitre, nous allons passé en revu les dossiers que nous allons utilisé dans ces tutoriels.

Répertoires racines

app

Le répertoire app contient le code principal de votre application. Nous explorerons ce répertoire plus en détail bientôt ; cependant, presque toutes les classes de votre application se trouveront dans ce répertoire.

config

Le répertoire config, comme son nom l'indique, contient tous les fichiers de configuration de votre application. C'est une bonne idée de lire tous ces fichiers et de vous familiariser avec toutes les options qui s'offrent à vous.

database

Le répertoire database contient vos migrations de base de données, les données factices de vos modèles. Si vous le souhaitez, vous pouvez également utiliser ce répertoire pour contenir une base de données SQLite. Il est donc le répertoire qui gère la structure de votre base de données.

lang

Le répertoire lang contient tous les fichiers de langue de votre application. Vous permettant de gérer plusieurs langues dans votre site web.

Remarque : Ce répertoire est devenu racine que à partir de la version 9 de Laravel, pour toutes les versions ultérieures, le répertoire lang se trouve dans le dossier public.

public

Le répertoire public contient le fichier index.php, qui est le point d'entrée pour toutes les demandes entrant dans votre application et configure le chargement automatique. Ce répertoire héberge également vos fichiers statiques tels que les images, JavaScript et CSS.

resources

Le répertoire resources contient vos vues ainsi que vos fichiers bruts non compilés tels que CSS, SASS ou JavaScript.

routes

Le répertoire routes contient toutes les définitions des URLs pour votre application. Par défaut, 4 fichiers de route sont inclus avec Laravel : web.php, api.php, console.php et channels.php. Dans ce tutoriels, vous avez besoin seulement de web.php.

Le fichier web.php contient des routes placés dans le RouteServiceProvider (web groupe middleware), qui fournit l'état de la session, la protection CSRF et le cryptage des cookies. Si votre application n'offre pas d'API RESTful sans état, il est probable que toutes vos routes seront très probablement définies dans le fichier web.php.

storage

Le répertoire storage contient vos logs, modèles de vues(blades) compilés, sessions basées sur des fichiers, fichiers caches et autres fichiers générés par le framework. Ce répertoire est divisé en répertoires app, framework et logs. Le répertoire app peut être utilisé pour stocker tous les fichiers générés par votre application. Le répertoire framework est utilisé pour stocker les fichiers et les caches générés par le framework. Enfin, le répertoire logs contient les fichiers journaux de votre application.

 

Le répertoire storage/app/public peut être utilisé pour stocker des fichiers générés par l'utilisateur, tels que des avatars de profil, les images des vos publications, qui doivent être accessibles au public. Vous devez créer un lien symbolique(raccourcis) public/storage pointant vers ce répertoire. Vous pouvez créer le lien à l'aide de la commande Artisan : php artisan storage:link.

tests

Le répertoire tests contient vos tests automatisés. Des exemples de tests unitaires PHPUnit et de tests de fonctionnalités sont fournis prêts à l'emploi. Chaque classe de test doit être suffixée par le mot Test. Vous pouvez exécuter vos tests à l'aide des commandes php unit ou php vendor/bin/phpunit. Ou, si vous souhaitez une représentation plus détaillée et plus belle de vos résultats de test, vous pouvez exécuter vos tests à l'aide de la commande Artisan php artisan test.

Répertoires de app

RemarqueDe nombreuses classes du répertoire app peuvent être générées via des commandes Artisan. Pour passer en revue les commandes disponibles, exécutez la commande php artisan list make dans votre terminal.

http

Le répertoire Http contient vos contrôleurs, middleware et requests. La quasi-totalité de la logique de gestion des requêtes entrant dans votre application sera placée dans ce répertoire. Les contrôleurs (app/http/controllers) sont les intermédiaires entre nos vues et les modèles.

Models

Le répertoire Models contient toutes vos classes de modèle Eloquent. L'ORM Eloquent inclus avec Laravel fournit une belle et simple implémentation ActiveRecord pour travailler avec votre base de données. Chaque table de base de données a un "modèle" correspondant qui est utilisé pour interagir avec cette table. Les modèles vous permettent d'interroger des données dans vos tables, ainsi que d'insérer de nouveaux enregistrements dans la table.

Passer en revue tous les répertoires que nous n'avons pas mentionnés ici dans la documentation officielle de Laravel.