Introduction
La structure d’application par défaut de Laravel est un bon point de départ pour des applications aussi bien petites que grandes. Cependant, vous êtes libre de structurer votre application comme vous le souhaitez. Laravel n’impose presque aucune restriction sur l’emplacement des classes, du moment que Composer peut les charger automatiquement.Répertoire racine
Lorsque vous créez un nouveau projet Laravel, la structure suivante est générée :Répertoire app/
Contient le code cœur de l’application.
Les contrôleurs, modèles, middlewares — presque toutes les classes de l’application — s’y trouvent.
Par défaut, il contient les sous-répertoires Http, Models et Providers.
Lorsque vous générez des classes avec les commandes Artisan, d’autres sous-répertoires sont créés automatiquement.
Répertoire bootstrap/
Contient le fichier app.php qui démarre le framework.
Il contient également le répertoire cache/ qui stocke les fichiers d’optimisation de performance (cache de routes, cache de services).
Répertoire config/
Contient tous les fichiers de configuration de l’application.
Il est recommandé de lire ces fichiers pour connaître les options disponibles.
Répertoire database/
Contient les migrations, les factories de modèles et les seeders.
Les fichiers de base de données SQLite peuvent également y être placés.
Répertoire public/
Contient index.php, point d’entrée de toutes les requêtes vers l’application.
Il contient également les assets (images, JavaScript, CSS).
Répertoire resources/
Contient les vues ainsi que les assets bruts (CSS et JavaScript avant compilation).
Répertoire routes/
Contient toutes les définitions de routes de l’application.
Par défaut, il contient deux fichiers de routes : web.php et console.php.
| Fichier | Usage |
|---|---|
web.php | Routes destinées au navigateur. Le groupe de middlewares web fournit sessions, protection CSRF et chiffrement des cookies. |
console.php | Fichier permettant de définir des commandes Artisan sous forme de closures. |
api.php | Routes API sans état. À ajouter avec la commande install:api. |
channels.php | Fichier d’enregistrement des canaux de diffusion d’événements. |
Répertoire storage/
Contient les fichiers générés par le framework : logs, templates Blade compilés, sessions basées sur fichier, cache basé sur fichier, etc.
Il est divisé en trois sous-répertoires : app/, framework/ et logs/.
Répertoire tests/
Contient les tests automatisés.
Des exemples de tests unitaires et fonctionnels utilisant Pest ou PHPUnit sont fournis par défaut.
Répertoire vendor/
Contient les dépendances Composer. Ne le versionnez pas.
Détail du répertoire app/
De nombreuses classes du répertoire app peuvent être générées via des commandes Artisan.
Pour lister les commandes disponibles, exécutez :
Répertoire Http/
Répertoire Http/
Contient les contrôleurs, middlewares et form requests.
Presque toute la logique de traitement des requêtes y réside.
Répertoire Models/
Répertoire Models/
Contient toutes les classes de modèles Eloquent.
Chaque table de la base de données a un « modèle » correspondant, utilisé pour requêter et insérer les données.
Répertoire Providers/
Répertoire Providers/
Contient tous les service providers de l’application.
Les service providers lient des services au conteneur, enregistrent des événements, etc., pour amorcer l’application.
Répertoire Console/
Répertoire Console/
Contient toutes les commandes Artisan personnalisées.
Elles peuvent être générées avec la commande
make:command.Répertoire Exceptions/
Répertoire Exceptions/
Contient toutes les exceptions personnalisées de l’application.
Elles peuvent être générées avec la commande
make:exception.Fichiers importants
Fichier .env
Gère les valeurs de configuration qui varient selon l’environnement (connexion à la base de données, clés d’API, etc.).
Il est référencé via le helper env() depuis les fichiers de configuration du répertoire config/.
Fichier artisan
Point d’entrée de l’interface en ligne de commande Artisan.
Exécutez-le au format php artisan <nom-de-commande>.
Prochaines étapes
Routage
Apprenez à définir des routes et à associer une URL à la logique de votre application.