Cours sur la Structure de Répertoires dans Laravel
Laravel est conçu pour être simple, mais puissant, et cela se reflète dans sa structure de répertoires. Comprendre cette structure est essentiel pour développer efficacement des applications avec ce framework. Ce cours détaillera chaque répertoire et fournira des exemples d'utilisation.
Structure de Répertoires de Laravel
Une fois que vous avez installé Laravel, vous verrez les répertoires suivants dans votre projet :
/project-root
├── app
├── bootstrap
├── config
├── database
├── public
├── resources
├── routes
├── storage
├── tests
├── vendor
├── .env
├── artisan
├── composer.json
└── package.json
1. Répertoire app
Le répertoire app
contient le cœur de votre application. C'est ici que vous allez écrire la majeure partie de votre code.
Sous-répertoires courants :
- Console : Contient les commandes Artisan personnalisées.
- Exceptions : Contient les gestionnaires d'exceptions.
- Http : Contient les contrôleurs, middlewares et requêtes.
- Models : Contient les modèles Eloquent.
- Providers : Contient les fournisseurs de services.
Exemple : Création d'un Contrôleur
php artisan make:controller UserController
Cela crée un fichier UserController.php
dans app/Http/Controllers
.
2. Répertoire bootstrap
Le répertoire bootstrap
contient les fichiers de démarrage de l'application et configure l'autoloader.
Fichiers courants :
- app.php : Initialise le framework.
Exemple : Personnalisation de l'Application
// bootstrap/app.php
$app->singleton(
Illuminate\Contracts\Http\Kernel::class,
App\Http\Kernel::class
);
3. Répertoire config
Le répertoire config
contient tous les fichiers de configuration de l'application.
Exemple : Configuration de la Base de Données
// config/database.php
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', '127.0.0.1'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
],
4. Répertoire database
Le répertoire database
contient les migrations, les seeds, et les factories.
Sous-répertoires courants :
- factories : Contient les factories pour les tests.
- migrations : Contient les migrations de la base de données.
- seeders : Contient les seeders de la base de données.
Exemple : Création d'une Migration
php artisan make:migration create_users_table
5. Répertoire public
Le répertoire public
contient le point d'entrée de l'application, index.php
, ainsi que les fichiers publics comme les images, les scripts JavaScript, et les feuilles de style CSS.
Fichiers courants :
- index.php : Point d'entrée de toutes les requêtes.
Exemple : Accès aux Fichiers Publics
<link rel="stylesheet" href="{{ asset('css/app.css') }}">
6. Répertoire resources
Le répertoire resources
contient les vues, les assets non compilés (SASS, JavaScript), et les fichiers de traduction.
Sous-répertoires courants :
- views : Contient les vues Blade.
- lang : Contient les fichiers de traduction.
- js : Contient les fichiers JavaScript.
- sass : Contient les fichiers SASS.
Exemple : Création d'une Vue
<!-- resources/views/welcome.blade.php -->
<!DOCTYPE html>
<html>
<head>
<title>Welcome</title>
</head>
<body>
<h1>Welcome to Laravel</h1>
</body>
</html>
7. Répertoire routes
Le répertoire routes
contient tous les fichiers de définition des routes.
Fichiers courants :
- web.php : Routes web.
- api.php : Routes API.
Exemple : Définition d'une Route
// routes/web.php
Route::get('/users', [UserController::class, 'index']);
8. Répertoire storage
Le répertoire storage
contient les logs, les fichiers de cache, et d'autres fichiers générés par l'application.
Sous-répertoires courants :
- app : Contient les fichiers générés par l'application.
- framework : Contient les fichiers de cache et les sessions.
- logs : Contient les fichiers de logs.
Exemple : Enregistrement d'un Fichier
Storage::put('file.txt', 'Contents');
9. Répertoire tests
Le répertoire tests
contient les tests unitaires et fonctionnels de votre application.
Sous-répertoires courants :
- Feature : Contient les tests fonctionnels.
- Unit : Contient les tests unitaires.
Exemple : Création d'un Test
php artisan make:test UserTest
10. Répertoire vendor
Le répertoire vendor
contient les dépendances installées via Composer. Vous ne devez jamais modifier les fichiers de ce répertoire directement.
11. Fichiers Racine
.env
Le fichier .env
contient les variables d'environnement spécifiques à votre application.
artisan
Le fichier artisan
est l'interface de ligne de commande pour Laravel.
composer.json
Le fichier composer.json
contient les dépendances et les informations sur le projet.
package.json
Le fichier package.json
contient les dépendances et les scripts pour les outils front-end comme Laravel Mix.
Conclusion
Comprendre la structure de répertoires de Laravel est crucial pour développer efficacement des applications. Chaque répertoire a un rôle spécifique et est conçu pour faciliter la gestion et l'organisation de votre code. En suivant ce guide, vous devriez maintenant avoir une bonne compréhension de la structure de base de Laravel et de la manière dont chaque composant interagit avec les autres.
```