Aller au contenu principal

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 / FichierRôle
app/Modèles, Controllers, Middleware, Providers (cœur de app)
app/Http/ControllersContrôleurs (logique des routes)
app/ModelsModèles Eloquent
config/Fichiers de configuration (database.php, app.php, etc.)
database/migrationsMigrations (structure des tables)
database/seedersDonnées initiales
public/Point d’entrée web (index.php), assets (CSS, JS, images)
resources/viewsTemplates Blade
routes/Définition des routes (web.php, api.php)
storage/Logs, cache, fichiers uploadés (hors web public)
tests/Tests PHPUnit / Feature
artisanCLI 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

  1. Laravel = framework PHP structuré (MVC, routing, ORM, auth, sécurité).
  2. .env = config et secrets ; artisan = outil en ligne de commande.
  3. routes/ définit les URLs ; app/Http/Controllers et app/Models contiennent la logique ; resources/views contient le HTML (Blade).
  4. 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).