Module 10 – Introduction à Laravel
Niveau 3 – Laravel fondamental
Objectifs
Pourquoi Laravel, comment l’installer (Composer, prérequis), la structure des dossiers et l’usage quotidien d’Artisan et Composer.
Théorie
Pourquoi Laravel ?
Laravel est un framework PHP full-stack qui fournit :
- Routing : associer des URLs à des contrôleurs ou des closures
- ORM Eloquent : modèles et relations avec la base de données
- Moteur de templates Blade : vues avec héritage, composants, boucles
- Authentification : login, inscription, réinitialisation de mot de passe
- Sécurité : CSRF, validation, hashing des mots de passe, rate limiting
- Outils : migrations, seeders, queues, jobs, events, tests (PHPUnit intégré)
- Écosystème : Sanctum (API), Livewire, Inertia, Horizon, etc.
Laravel évite de tout coder à la main (MVC, PDO, routing) : il fournit une structure et des briques réutilisables pour aller plus vite et garder un code maintenable.
Prérequis
- PHP 8.1+ (8.2 ou 8.3 recommandé)
- Composer 2
- Extensions PHP : pdo, mbstring, openssl, tokenizer, xml, ctype, json, bcmath (pour BDD et crypto)
- Base de données : MySQL/MariaDB, PostgreSQL ou SQLite pour le dev
Vérifier : php -v, composer -V, et php -m pour les extensions.
Les commandes ci-dessous s’exécutent dans un terminal : PowerShell ou Invite de commandes sur Windows, Terminal (bash/zsh) sur macOS et Linux. La syntaxe est la même sur tous les OS.
Installation
Créer un nouveau projet :
composer create-project laravel/laravel mon-projet
cd mon-projet
Serveur de développement :
php artisan serve
Ouvrir http://localhost:8000. La page d’accueil Laravel s’affiche.
Variables d’environnement :
Le fichier .env contient la config (DB, APP_KEY, etc.). Ne jamais le versionner avec des secrets de prod. Copier .env.example en .env puis php artisan key:generate si besoin.
Structure du framework
| Dossier / Fichier | Rôle |
|---|---|
| app/ | Modèles, Controllers, Middleware, Providers (cœur de app) |
| app/Http/Controllers | Contrôleurs (logique des routes) |
| app/Models | Modèles Eloquent |
| config/ | Fichiers de configuration (database.php, app.php, etc.) |
| database/migrations | Migrations (structure des tables) |
| database/seeders | Données initiales |
| public/ | Point d’entrée web (index.php), assets (CSS, JS, images) |
| resources/views | Templates Blade |
| routes/ | Définition des routes (web.php, api.php) |
| storage/ | Logs, cache, fichiers uploadés (hors web public) |
| tests/ | Tests PHPUnit / Feature |
| artisan | CLI Laravel (commandes) |
Flux d’une requête :
public/index.php → bootstrap Laravel → routes/web.php (ou api.php) → Controller (ou closure) → Model si besoin → View (Blade) → réponse HTTP.
Artisan
Artisan est le CLI Laravel. Commandes utiles :
php artisan serve # Dev server
php artisan route:list # List routes
php artisan make:controller X # Create controller
php artisan make:model X # Create model
php artisan make:migration create_x_table # Create migration
php artisan migrate # Run migrations
php artisan db:seed # Run seeders
php artisan tinker # PHP REPL with app loaded
php artisan config:clear # Clear config cache
Composer dans un projet Laravel
- Dépendances :
composer.json(require),composer.lock(versions figées). - Autoload : PSR-4 pour
App\→app/. - Scripts :
composer install(après clône),composer update(mise à jour des paquets). - Packages Laravel : souvent ajoutés via Composer (
composer require laravel/sanctum, etc.).
À retenir
- Laravel = framework PHP structuré (MVC, routing, ORM, auth, sécurité).
.env= config et secrets ; artisan = outil en ligne de commande.- routes/ définit les URLs ; app/Http/Controllers et app/Models contiennent la logique ; resources/views contient le HTML (Blade).
- Toujours utiliser Artisan pour générer contrôleurs, modèles, migrations (cohérence et gain de temps).
Quiz – Module 10
Q1. Qu’est-ce qu’un framework et en quoi Laravel en est un ?
Q2. Où sont définies les URLs (routes) dans un projet Laravel ?
Q3. Quelle commande lance le serveur de développement ?
Q4. À quoi sert le fichier .env ?
Q5. Où se trouvent les templates HTML (vues) ?
Réponses
R1. Un framework fournit une structure et des briques (routing, ORM, auth, vues) pour construire une application. Laravel est un framework PHP full-stack qui offre tout cela.
R2. Dans routes/ : web.php pour le web, api.php pour l’API.
R3. php artisan serve.
R4. À stocker la configuration et les secrets (clé app, BDD, etc.) par environnement. Il ne doit pas être versionné avec des secrets de prod.
R5. Dans resources/views (fichiers Blade).
Suite
Module 11 – Routes & Contrôleurs (définir des routes, créer des contrôleurs, middleware, validation des requêtes).