Laravel

Définition

Laravel est un framework web full-stack moderne et open-source écrit en Php selon le pattern architectural et qui met l’accent sur la syntaxe élégante, la productivité des développeurs et un outillage complet pour la construction d’applications web.

Vue d’ensemble

Créé par Taylor Otwell en 2011, Laravel est devenu le framework PHP le plus populaire. Il s’inspire de Ruby On Rails.

  • Relations Eloquent : Définitions de relations riches (has one, has many, many to many)
  • Middleware : Filtre des requêtes HTTP et pipeline d’authentification
  • Seeding & Migrations : Contrôle de version de la base de données et génération de données de test
  • Laravel Mix : Compilation d’actifs (intégration Webpack/Vite)
  • Laravel Sanctum : Authentification API et gestion de tokens SPA
  • Laravel Echo : Abonnement aux événements en temps réel avec WebSockets

Architecture

  • Pattern MVC : Contrôleurs, Vues (Blade), Modèles (Eloquent)
  • Service Container : Conteneur d’inversion de contrôle (IoC) pour l’injection de dépendance
  • Service Providers : Initialisation et enregistrement des services de l’application
  • Pattern Facade : Syntaxe de type statique pour accéder aux services du conteneur IoC

Versions majeures

|| Version | Année | Fonctionnalités clés | ||———|——|————–| || Laravel 4 | 2013 | Support Composer, Artisan CLI, Eloquent ORM | || Laravel 5 | 2015 | Découverte de packages, Laravel Mix, Nova, Passport | || Laravel 6 | 2019 | PHP 7.2+, Laravel UI, aperçu Octane | || Laravel 7 | 2020 | Laravel UI, redirections temporaires, cache de routes | || Laravel 8 | 2020 | Support PHP 8+, Laravel Sail, Jetstream, Filament | || Laravel 9 | 2022 | PHP 8.1+, propriétés typées, Laravel Breeze | || Laravel 10 | 2023 | PHP 8.2+, types stricts, Laravel Pail | || Laravel 11 | 2024 | Point d’entrée index.php unique, PHP 8.2+, nouvelle structure de répertoires |

Écosystème Laravel

|| Package | Objectif | ||———|———| || Laravel Livewire | Framework full-stack sans JavaScript | || Laravel Nova | Panneau d’administration pour les applications Laravel | || Laravel Echo | Abonnements WebSocket en temps réel | || Laravel Sanctum | Authentification API pour les SPA et applications mobiles | || Laravel Fortify | Scaffolding d’authentification | || Filament | Panneau d’administration et générateur de formulaires | || Inertia.js | Développement SPA sans boilerplate API |

Laravel vs Symfony

Laravel est construit sur les composants Symfony. Principales différences :

  • Laravel : Opiné, batteries incluses, focus sur le développement rapide
  • Symfony : Modulaire, basé sur les composants, focus sur la flexibilité entreprise
  • Symfony fournit les blocs de construction ; Laravel les assemble en un framework cohérent

Licence

Laravel est publié sous la MIT License, une licence open-source permissive approuvée par l’OSI. Il est libre d’utilisation, de modification et de distribution pour tout usage, y compris commercial.

Voir laravel/framework pour plus de détails.

Cas d’utilisation

  • Applications single-page (avec Inertia.js)
  • Plates-formes de commerce électronique
  • Systèmes de gestion de contenu
  • Backends API
  • Applications SaaS
  • Prototypage rapide et développement de MVP

Frameworks associés

  • Symfony | Framework PHP léger (plus simple que Laravel)
  • CakePHP | Un autre framework PHP MVC avec ORM et scaffolding

Références