Laravel
Créer des applications web avec Laravel : routage, modèles Eloquent, authentification, files d'attente et déploiement, expliqués avec des exemples concrets réutilisables dans vos projets.
Aucun récit ici pour l'instant !
Nous n'avons pas encore écrit là-dessus. Explorez un autre sujet, ou revenez bientôt !
Questions sur ce thème
Des réponses rapides et claires aux questions que les lecteurs posent le plus sur ce thème.
Qu'est-ce que Laravel ?
Laravel est un framework PHP gratuit et open source pour créer des applications web. Laravel fournit aux développeurs des briques prêtes pour le routage, les bases de données, la connexion, l'email, les files d'attente et les tests, ce qui réduit le code répétitif. Le framework suit le modèle MVC (modèle, vue, contrôleur) et dispose d'une grande communauté.
À quoi sert Laravel ?
Laravel sert à créer des applications web comme des logiciels de gestion, des portails clients, des boutiques en ligne, des plateformes de réservation et des API pour applications mobiles. Il convient à tout projet qui a besoin d'utilisateurs, d'une base de données et de règles métier. De nombreuses entreprises font tourner de grands systèmes privés sur Laravel, car le framework est stable et facile à étendre.
Laravel est-il adapté aux débutants ?
Laravel convient aux débutants qui connaissent déjà les bases de PHP, car son code est lisible et sa documentation officielle est claire. Laravel dispose aussi d'une grande communauté, de nombreux tutoriels et de starter kits qui mettent en place les pages de connexion pour vous. Apprendre d'abord le PHP pur rend le framework bien plus facile à comprendre.
Comment installer Laravel sur mon ordinateur ?
On installe Laravel en installant d'abord PHP et Composer, puis en lançant composer create-project laravel/laravel suivi du nom du projet. L'installateur Laravel, appelé avec laravel new, fait la même chose et propose des starter kits. Ensuite, php artisan serve démarre un serveur local pour ouvrir l'application dans le navigateur.
Quelle version de PHP Laravel exige-t-il ?
Laravel exige une version récente de PHP 8, et chaque version de Laravel indique la version minimale de PHP qu'elle prend en charge. Les nouvelles versions de Laravel abandonnent les anciennes versions de PHP quand celles-ci arrivent en fin de support de sécurité. Consultez toujours le guide de mise à niveau de la version de Laravel que vous comptez utiliser.
Qu'est-ce que le routage dans Laravel ?
Le routage dans Laravel relie une adresse web et une méthode HTTP, comme GET ou POST, au code qui y répond. Les routes s'écrivent dans des fichiers comme routes/web.php pour les pages et routes/api.php pour les API. Une route peut appeler une closure ou une méthode de contrôleur et porter des middlewares pour la connexion et d'autres contrôles.
Qu'est-ce qu'Eloquent dans Laravel ?
Eloquent est l'ORM de Laravel, la partie qui permet de manipuler les tables de la base de données comme des classes PHP appelées modèles. Chaque modèle correspond à une table et chaque objet à une ligne, ce qui permet de lire et d'enregistrer des données sans écrire de SQL. Eloquent gère aussi les relations comme un-à-plusieurs et plusieurs-à-plusieurs.
Comment fonctionnent les relations Eloquent dans Laravel ?
Les relations Eloquent dans Laravel sont des méthodes d'un modèle, comme hasMany, belongsTo et belongsToMany, qui décrivent comment deux tables sont liées. Une fois définies, elles permettent de lire les données liées comme $order->customer sans écrire de jointure. Le chargement anticipé avec la méthode with charge les lignes liées en une fois et évite des requêtes répétées et lentes.
Qu'est-ce que le problème des requêtes N+1 dans Laravel ?
Le problème des requêtes N+1 dans Laravel survient quand le code charge une liste d'enregistrements puis lance une requête supplémentaire pour chacun afin de récupérer les données liées. Une page de 100 commandes peut alors exécuter 101 requêtes et devenir lente. Le chargement anticipé avec la méthode with règle le problème en récupérant les lignes liées en une seule requête.
Que sont les migrations dans Laravel ?
Les migrations dans Laravel sont des fichiers PHP qui créent et modifient les tables de la base de données par le code. La commande php artisan migrate les applique, si bien que chaque développeur et chaque serveur obtient la même structure de base. Comme les migrations sont versionnées, l'historique de chaque changement de table est conservé.
Qu'est-ce que Blade dans Laravel ?
Blade est le moteur de templates de Laravel, qui permet d'écrire des pages HTML avec des balises simples pour les boucles, les conditions et les gabarits. Blade échappe par défaut les valeurs affichées, ce qui protège les pages du cross-site scripting. Les templates sont compilés en PHP pur et mis en cache, Blade n'ajoute donc presque aucun coût à chaque requête.
Comment fonctionne l'authentification dans Laravel ?
L'authentification dans Laravel fonctionne avec des guards qui vérifient qui est l'utilisateur et des providers qui chargent les utilisateurs depuis la base de données. Des starter kits comme Laravel Breeze ajoutent des pages prêtes de connexion, d'inscription et de réinitialisation du mot de passe. Les mots de passe sont hachés avec bcrypt ou Argon2 et ne sont donc jamais stockés en clair.
Quelle est la différence entre Laravel Sanctum et Laravel Passport ?
Laravel Sanctum offre une connexion simple par jeton et par cookie pour les applications monopages, les applications mobiles et les API basiques, alors que Laravel Passport est un serveur OAuth2 complet. La plupart des projets n'ont besoin que de Sanctum, plus léger et plus simple à configurer. Passport convient quand des applications externes doivent se connecter au nom de vos utilisateurs.
Que sont les middlewares dans Laravel ?
Les middlewares dans Laravel sont des couches qui vérifient ou modifient une requête avant qu'elle n'atteigne votre code, ou une réponse avant qu'elle ne parte. Les middlewares courants gèrent la vérification de connexion, la protection CSRF, la limitation de débit et le réglage de la langue. On peut les attacher à une route, à un groupe de routes ou à toute l'application.
Comment fonctionnent les files d'attente dans Laravel ?
Les files d'attente (queues) dans Laravel sortent les tâches lentes, comme l'envoi d'emails ou la création de rapports, de la requête web pour les placer dans des jobs en arrière-plan. Un job est envoyé vers un driver de file comme Redis ou la base de données, et un worker lancé avec php artisan queue:work l'exécute. L'utilisateur obtient une réponse rapide pendant que le travail lourd se termine en arrière-plan.
Quand utiliser les files d'attente dans une application Laravel ?
Utilisez les files d'attente dans une application Laravel dès qu'une tâche prend plus d'un instant ou dialogue avec un service externe, comme l'email, le traitement de fichiers ou les webhooks de paiement. Les files gardent les pages rapides et permettent aux jobs échoués de se relancer d'eux-mêmes. Laravel Horizon fournit un tableau de bord pour surveiller les files Redis.
Comment planifier des tâches dans Laravel ?
On planifie des tâches dans Laravel en les définissant dans le scheduler avec des méthodes comme daily ou everyFiveMinutes, puis en lançant php artisan schedule:run chaque minute depuis une seule entrée cron sur le serveur. Le scheduler décide alors quelles tâches sont à exécuter. Toutes les tâches planifiées restent ainsi dans le code au lieu de nombreuses lignes cron séparées.
Comment valider les données d'un formulaire dans Laravel ?
On valide les données d'un formulaire dans Laravel avec la méthode validate de la requête ou avec une classe Form Request qui contient les règles. Des règles comme required, email, max et unique vérifient chaque champ avant que votre code ne l'utilise. En cas d'échec, Laravel renvoie l'utilisateur vers le formulaire avec les messages d'erreur et les valeurs saisies.
Comment Laravel protège-t-il contre les attaques web courantes ?
Laravel protège contre les attaques web courantes avec des jetons CSRF sur les formulaires, l'échappement de l'affichage dans Blade, la liaison de paramètres dans les requêtes en base et le hachage des mots de passe. Ces protections par défaut bloquent en usage normal la falsification de requêtes intersites, le cross-site scripting et l'injection SQL. Les développeurs doivent tout de même valider les saisies, vérifier les permissions et tenir le framework à jour.
Comment déployer une application Laravel sur un serveur ?
On déploie une application Laravel en récupérant le code sur le serveur, en lançant composer install sans les paquets de développement, en configurant le fichier .env et en exécutant les migrations. On met ensuite en cache la configuration, les routes et les vues, et on fait pointer le serveur web vers le dossier public. Beaucoup d'équipes automatisent ces étapes depuis Git pour que chaque mise en production soit identique.
De quel serveur une application Laravel a-t-elle besoin ?
Une application Laravel a besoin d'un serveur avec PHP, un serveur web comme Nginx ou Apache, une base de données comme MySQL ou PostgreSQL et Composer. Redis est souvent ajouté pour le cache et les files d'attente, et un gestionnaire de processus maintient les workers en marche. Hostrena, la marque d'hébergement de Linkysoft, propose un hébergement d'applications web pour Laravel déployé directement depuis Git.
Comment rendre une application Laravel plus rapide ?
On rend une application Laravel plus rapide en mettant en cache la configuration, les routes et les vues, en chargeant les relations de façon anticipée et en ajoutant des index sur les colonnes recherchées. Déplacer les tâches lentes vers les files d'attente et mettre en cache dans Redis les résultats de requêtes lourdes aident encore. Activer OPcache de PHP sur le serveur apporte un gain important pour peu d'effort.
Comment tester une application Laravel ?
On teste une application Laravel avec PHPUnit ou Pest, déjà configurés dans chaque nouveau projet. Les tests de fonctionnalité envoient de fausses requêtes aux routes et vérifient la réponse et la base de données, tandis que les tests unitaires vérifient des classes isolées. La commande php artisan test lance toute la suite.
Laravel peut-il gérer de grandes applications avec beaucoup d'utilisateurs ?
Oui, Laravel gère de grandes applications avec beaucoup d'utilisateurs quand il tourne sur de bons serveurs avec du cache, des files d'attente, des index en base et plusieurs serveurs d'application derrière un répartiteur de charge. Le framework est rarement la limite, ce sont plutôt les requêtes lentes et l'absence de cache. C'est pourquoi Linkysoft développe des applications web sur mesure avec PHP, Laravel, MySQL et Redis.
À quelle fréquence faut-il mettre à jour sa version de Laravel ?
Il faut mettre à jour sa version de Laravel au plus tard avant que la version actuelle ne reçoive plus de correctifs de sécurité. Laravel publie une version majeure environ une fois par an, chacune accompagnée d'un guide de mise à niveau. De petites mises à niveau régulières sont bien plus simples que de sauter plusieurs versions d'un coup.