Laravel : Tout savoir sur le framework PHP incontournable

17 juin 2024

Qu’est-ce qu’un framework PHP ?

Un framework PHP est une collection de bibliothèques de code pré-écrites et d’outils que les développeurs peuvent utiliser pour construire des applications web plus rapidement et plus efficacement. Il fournit une approche structurée du développement d’applications, comprenant souvent les éléments suivants

  • Routage :

Il relie les URL entrantes à des fonctions spécifiques au sein de votre application.

  • Templating :

Définit la mise en page et la structure de vos pages web.

  • Accès aux bases de données :

Simplifie l’interaction avec les bases de données.

  • Validation des formulaires :

Permet de s’assurer que les données saisies par les utilisateurs sont valides.

  • Fonctions de sécurité :

Protège votre application contre les failles de sécurité les plus courantes.

  • Fonctionnalités supplémentaires :

De nombreux frameworks offrent des fonctionnalités telles que l’authentification, l’autorisation, la mise en cache, etc.

Avantages de l’utilisation d’un framework PHP

  • Productivité accrue :

Il réduit la quantité de code à écrire, ce qui vous permet de vous concentrer sur les caractéristiques uniques de votre application.

  • Réutilisation du code :

De nombreux frameworks ont de grandes communautés et offrent de nombreux composants et bibliothèques réutilisables.

  • Sécurité :

Les frameworks intègrent souvent des fonctions de sécurité pour protéger votre application.

  • Amélioration de la maintenabilité :

Un code bien structuré facilite la compréhension et la maintenance de votre application.

Historique des différentes versions

2011

  • Juin: Sortie de Laravel 1.0

Laravel 1 incluait un support intégré pour l’authentification, la localisation, les modèles, les vues, les sessions, le routage et d’autres mécanismes. Mais il ne prenait pas en charge les contrôleurs, ce qui l’empêchait d’être un véritable framework MVC, qui signifie “Modèle, Vue, Contrôleur”, c’est un patron de conception concernant l’agencement du code.

  • Septembre: Sortie de Laravel 2.0

Parmi les nouvelles fonctionnalités, citons le support des contrôleurs, qui fait de Laravel 2 un framework entièrement compatible MVC, le support intégré du principe d’inversion de contrôle, et un système de templating appelé Blade. En revanche, la prise en charge des paquets tiers a été supprimée dans Laravel 2.

Cette version introduit plusieurs nouvelles fonctionnalités, comme le système de gestion de base de données Eloquent ORM et le support pour la modularité.

2012

  • Février: Sortie de Laravel 3.0

Laravel 3.0 introduit de nouvelles fonctionnalités :

  • Système de migrations pour le contrôle de version de la base de données
  • Suite de tests unitaires
  • L’interface de ligne de commande cmd (CLI) appelée Artisan
  • La prise en charge intégrée d’un plus grand nombre de systèmes de gestion de bases de données
  • La prise en charge de la gestion des événements et un système d’empaquetage appelé Bundles.

2013

  • Mai: Sortie de Laravel 4.0, Laravel Illuminate

Cette nouvelle version introduit une nouvelle structure de fichiers, le framework est maintenant divisé en différents packages composer.

Les développeurs peuvent donc utiliser ces packages composer de Laravel dans leurs propres projets PHP.

De plus, elle introduit aussi de nouvelles fonctionnalités :

  • Database seeding pour la population initiale des bases de données
  • La prise en charge des files d’attente de messages
  • La prise en charge intégrée de l’envoi de différents types de courrier électronique
  • La prise en charge de la suppression différée des enregistrements de la base de données, appelée « soft deletion« 
  • Un ORM plus puissant avec des champs d’applications

2015

  • Février: Sortie de Laravel 5.0

Une nouvelle version du moteur de templating Blade et de nouvelles fonctionnalités comme les notifications et les événements.

Une nouvelle structure de répertoire pour l’application et une simplification du système de routage interne.

  • Décembre: Sortie de Laravel 5.1

C’est la première version LTS (Long-Term Support) de Laravel. Elle contient aussi de nouvelles fonctionnalités :

  • Diffusion d’événements

Elle permet de créer des interfaces utilisateur en temps réel, avec mise à jour en direct.

  • Paramètres de l’intergiciel

Les intergiciels peuvent désormais recevoir des paramètres personnalisés supplémentaires.

  • Usines de modèles

Elles permettent la création de modèles Eloquent stub en utilisant des usines de modèles.

  • Améliorations d’Artisan
  • Structure des dossiers
  • Encryptage

L’extension PHP mcrypt a été remplacée par l’extension openssl pour gérer le cryptage.

  • Décembre : Sortie de Laravel 5.2

Les nouvelles fonctionnalités de cette version sont :

  • Pilotes d’authentification / « Multi-auth »

Ils ajoutent de la prise en charge de plusieurs pilotes d’authentification. De plus, il y a maintenant une possibilité de définir plusieurs modèles ou tables d’utilisateurs authentifiables. Un contrôle des processus d’authentification séparément pour les différentes tables d’utilisateurs est mis en place.

  • Echafaudage d’authentification

Il ajoute d’une commande pour la création de vues d’authentification : ‘php artisan make:auth’. Il génère aussi des vues compatibles avec Bootstrap pour la connexion, l’enregistrement et la réinitialisation du mot de passe des utilisateurs.

  • Liaison implicite des modèles qui injecte les modèles pertinents directement dans les routes et les contrôleurs.
  • Groupes d’intergiciels
  • Nouvel intergiciel de limitation de débit qui limite le nombre de requêtes en fonction de l’IP sur une période donnée.
  • Amélioration de la validation des tableaux
  • Nouvelle règle de validation pour arrêter la validation après le premier échec de validation.
  • Améliorations de la portée globale d’Eloquent

2016

  • Août: Sortie de Laravel 5.3

Elle inclut de nouvelles fonctionnalités comme les pipelines de middleware et les tests d’unités améliorés.

2017

  • Août: Sortie de Laravel 5.4

Elle qui apporte des améliorations de performance et de nouvelles fonctionnalités comme les collections Laravel et les notifications Fluent.

2018

  • Mai : Sortie de Laravel 5.5

Elle inclut la nouvelle interface de ligne de commande Artisan et de nouvelles fonctionnalités comme les modèles de formulaires et les composants Vue.js.

2019

  • Août : Sortie de Laravel 5.6

Elle apporte des améliorations de performance et de nouvelles fonctionnalités comme les routes paresseuses et les tests de bout en bout.

2020

  • Septembre : Sortie de Laravel 8.0

Cette version introduit Laravel Jetstream, un framework d’authentification et d’autorisation, et de nouvelles fonctionnalités comme les modèles d’usine et les migrations Squash.

2021

  • Février : Sortie de Laravel 9.0

Elle apporte des améliorations de performance et de nouvelles fonctionnalités comme les classes de requête Eloquent améliorées et les stubs de test améliorés.

2022

  • Février : Sortie de Laravel 10.0

La version introduit de nouvelles fonctionnalités comme les routes de type « catch-all », les pipelines de middleware inversés et les tests de composants Livewire.

2023

  • Février : Sortie de Laravel 11.0

Cette version apporte des améliorations de performance et de nouvelles fonctionnalités comme les modèles de base de données JSON, les notifications de canal Discord et les tests de bout en bout Cypress.

Les principales fonctionnalités

  • Le routage

Le routage inverse est une fonctionnalité unique qui prend en charge la propagation automatique des modifications apportées aux routes dans les liens pertinents. En d’autres termes, il crée automatiquement des identificateurs de ressources uniformes. Le développeur peut alors définir très facilement les urls d’un site web ou d’une application web, et rediriger les requêtes http vers les contrôleurs correspondants.

  • L’interface Artisan

Laravel offre une interface en ligne de commande appelée Artisan, qui permet aux développeurs de générer du code, de migrer la base de données et de gérer d’autres tâches courantes, comme la migration des bases de données.

  • L’ORM Eloquent

Laravel utilise un ORM (Object Relational Mapping) appelé Eloquent.

Il utilise le modèle Active Record qui permet de travailler avec des bases de données relationnelles.

  • Le moteur de template Blade

Laravel utilise le moteur de template Blade pour utiliser les fonctions PHP directement dans sa logique. Cela facilite la création et la gestion des vues des sites web ou des applications web.

  • Les middlewares

Servant de couche intermédiaire entre la requête HTTP entrante et la requête HTTP sortante, le middleware permet de gérer plus facilement certaines tâches. Que ce soit l’authentification, la sécurité, la gestion des sessions et l’autorisation.

  • Les tests unitaires

Laravel permet de faire des tests unitaires, afin de vérifier un morceau de programme ou une fonction. Ces tests permettent de s’assurer que tout le processus se déroule sans problème.

  • Des services de messagerie intégrés

Laravel permet l’intégration d’applications avec les services de messagerie les plus populaires, via des API.

  • Un framework performant et sécurisé

Laravel est connu pour être performant et sécurisé.

  • Une architecture MVC

Laravel suit l’architecture MVC (Modèle-Vue-Contrôleur), ce qui facilite la structuration et la maintenance des applications.

  • Des paquets prêts à l’emploi

Laravel fournit de nombreux progiciels, tels que Dusk, Telescope, Horizon, Scout, Passport, Cashier, Sanctum et d’autres encore, pour vous aider à gérer les services de facturation et à définir les tâches sur les serveurs distants.

Les avantages de Laravel par rapport aux autres framework

  • Une bonne documentation

La documentation de Laravel est considérée comme l’une des meilleures dans le monde des frameworks PHP. Elle est détaillée, bien articulée, et constitue une aide constante pour les développeurs.

  • Une mise sur le marché plus rapide

Grâce aux intégrations rapides offertes par Laravel et à sa syntaxe, les développeurs peuvent réduire considérablement le cycle de développement, et lancer le produit plus rapidement.

  • Une grande communauté

Laravel a une vaste communauté de développeurs, offrant une aide précieuse et des solutions aux problèmes rencontrés.

  • Flexibilité et puissance :

Il contient un large choix de fonctionnalités intégrées, un système de bundles et de packages facilitant l’intégration de composants externes et la création d’extensions personnalisées. De plus, il contient aussi une architecture modulaire et extensible permettant d’adapter le framework aux besoins spécifiques de chaque projet.

  • Performance et sécurité

Laravel est optimisé pour offrir des performances élevées et une exécution fluide des applications. Il y a aussi une intégration native de fonctionnalités de sécurité pour protéger les applications contre les attaques courantes.

  • Coût et accessibilité

Open source et gratuit, Laravel est accessible à tous les développeurs sans restriction. Le coût de développement avec Laravel est généralement inférieur à celui d’autres frameworks concurrents.

Démarrer avec Laravel : installation/configuration/pratique de développement

Pour Windows

  1. Installez XAMPP

XAMPP est une solution de serveur web libre et gratuite qui inclut PHP, MySQL et Apache.

Une fois l’installation terminée, lancez le panneau de contrôle XAMPP et démarrez les services Apache et MySQL.

  1. Installez Composer

Composer est un outil de gestion des dépendances pour PHP qui est nécessaire pour installer Laravel.

Pendant l’installation, vous devez faire attention à deux choses :

  • Sélectionner Installer pour tous les utilisateurs
  • Sélectionner le bon exécutable PHP durant le processus d’installation
  1. 3. Vérifiez l’installation de Composer

Pour vérifier que Composer a été installé correctement, utilisez les touches Window + R et tapez ‘cmd’ pour ouvrir la boîte de commande et écrivez :

‘composer –version’

Si l’installation a réussi, la version de Composer devrait s’afficher.

  1. Installez Laravel à l’aide de Composer

Ouvrez de nouveau la boîte de commande et exécutez la commande suivante :

‘composer create-project –prefer-dist laravel/laravel Project_name’

Cette commande téléchargera automatiquement tous les fichiers Laravel nécessaires à la création d’un nouveau projet, et générera également la clé ANSI.

  1. Créer une nouvelle base de données

Sur XAMPP, appuyez sur ‘Admin’ dans la ligne MySQL.

Une fois que vous êtes sur phpMyAdmin, appuyez sur ‘Nouvelle base de données’ dans la colonne de gauche de l’écran.

Ensuite, créez votre base de données.

Une fois cette base de données créer, vous pouvez créer une ou plusieurs tables et choisir le nombre de colonnes.

  1. Mettre à jour le fichier .Env

Vous devez ensuite mettre à jour le fichier .Env comme ceci :

  1. Migrer la base de données

Voici les commandes de migration.

  • ‘cd Project_name’ permet de créer le fichier de migration DB dans votre dossier ‘base de données/migration’.
  • ‘php artisan migrate’ est utilisé pour exécuter les modifications de migration en attente dans la base de données
  1. Démarrer le serveur de développement

‘php artisan serve’ démarre votre serveur de développement.

  1. Accédez à l’URL IP

Cette url est trouvée sur la fenêtre des commandes.

Pour MacOS

  1. Installer Homebrew

Sur Homebrew, vous retrouverez une commande à copier. Une fois qu’elle est copié, ouvrez votre terminal et collez là.

Ensuite, suivez les instructions du terminal.

  • Installer Composer

Composer sert de gestionnaire de dépendances essentiel pour PHP, et son utilisation est requise pour l’installation de Laravel. Exécuter cette commande : ‘brew install composer’.

  • Installer Laravel

D’abord, créer un nouveau dossier sur le bureau. Ensuite, exécutez ces commandes :

‘cd dekstop’

‘cd file_name’

‘composer create-project –prefer-dist Laravel/Laravel Project_name’

Le projet est maintenant dans votre dossier. Pour terminer, exécuter la commande ‘cd Project_Name’.

  • Lancer Laravel

Pour cela, on va utiliser PHP. La première commande est ‘php artisan serve’.

Copiez le lien et accédez-y sur votre moteur de recherche, votre serveur peut être utiliser.

Dans le dossier que vous avez créé, vous pouvez maintenant accéder à votre application et la modifier.

Cas d’usage avancés : développement d’API/ test et déploiement/intégration avec d’autres technologies

Développement d’API

Laravel offre plusieurs fonctionnalités pour faciliter le développement d’API RESTful robustes et sécurisées :

  • Routage

Laravel fournit un système de routage intuitif pour définir les différentes routes de votre API.

  • Contrôleurs

Les contrôleurs Laravel permettent d’organiser le code API en classes et en méthodes bien définies.

  • Validation des requêtes

Laravel propose des outils de validation pour assurer que les données envoyées par les clients sont valides.

  • Middleware

Le middleware permet d’ajouter des fonctionnalités transversales aux routes API, comme l’authentification et la gestion des erreurs.

  • Transformations des réponses

Laravel permet de transformer facilement les données de l’API avant de les envoyer au client.

  • Pagination et filtrage des résultats

Laravel fournit des classes et des helpers pour paginer et filtrer facilement les résultats des requêtes API.

  • Gestion des erreurs API

Laravel propose des outils pour gérer les erreurs API de manière cohérente et informative.

  • Documentation API

Laravel Lumen est un micro-framework Laravel qui peut être utilisé pour créer des API légères et documentées.

  • Test et Déploiement

Laravel propose plusieurs outils pour faciliter le test et le déploiement de vos applications:

  • Tests unitaires

Laravel fournit un framework de test unitaire intégré pour tester le code de votre application.

  • Tests fonctionnels

Laravel Dusk est un outil de test fonctionnel qui permet de tester l’application via une interface web.

  • Développement local

Laravel Sail est un outil qui permet de configurer facilement un environnement de développement local avec Docker.

  • Déploiement en production

Laravel Forge est un service de déploiement qui vous permet de déployer facilement vos applications sur des serveurs de production.

Intégration avec d’autres technologies

Laravel peut être facilement intégré avec d’autres technologies pour étendre ses fonctionnalités :

  • Bases de données

Laravel prend en charge plusieurs bases de données populaires, comme MySQL, PostgreSQL et MongoDB.

  • Queues de messages

Laravel Horizon est un outil de gestion de queues de messages qui permet de différer l’exécution de tâches longues.

  • Cache

Laravel fournit un système de cache intégré pour améliorer les performances de votre application.

  • Authentification et autorisation

Laravel Passport est un package d’authentification OAuth 2 qui permet de créer des API protégées.

  • Notifications

Laravel Notification est un package qui permet d’envoyer facilement des notifications par email et SMS.