Cas pratiques Laravel

30 cas pratiques Laravel disponibles. Niveaux : fondamental (10), avancé (10), expert (10).

Fait partie de : Cas pratiques de PHP et Ruby

FondamentalLaravel

Activation et utilisation correcte des timestamps Eloquent

Contexte : Un modèle doit enregistrer automatiquement les dates de création et mise à jour. Le Problème : Les champs created_at et updated_at ne sont pas remplis. Contraintes : Vérifier configuration du modèle et migration. Livrable attendu : Corriger la configuration afin que les timestamps soient automatiquement gérés par Eloquent.

laraveleloquenttimestamps+1
FondamentalLaravel

Configuration correcte des variables d'environnement

Contexte : Les informations de base de données sont codées en dur. Le Problème : L'application n'est pas prête pour différents environnements. Contraintes : Utiliser le fichier .env. Livrable attendu : Configurer correctement les variables DB_HOST, DB_DATABASE, DB_USERNAME et DB_PASSWORD dans .env et vérifier la connexion.

laravelenvironmentconfig+1
FondamentalLaravel

Correction d'une erreur de mass assignment

Contexte : Une route POST tente de créer un modèle via create(). Le Problème : Une erreur MassAssignmentException est levée. Code actuel : Article::create($request->all()); Contraintes : Utiliser $fillable ou $guarded dans le modèle. Livrable attendu : Corriger le modèle afin d'autoriser explicitement les champs autorisés et supprimer l'erreur de mass assignment.

laraveleloquentsecurity+1
FondamentalLaravel

Correction d'une route non trouvée (404)

Contexte : Une URL retourne une erreur 404 malgré la présence d'un contrôleur. Le Problème : La route n'est pas correctement déclarée dans le fichier routes. Contraintes : Vérifier routes/web.php ou routes/api.php. Livrable attendu : Corriger la déclaration de route afin qu'elle corresponde correctement à l'URL demandée.

laravelroutingdebugging+1
FondamentalLaravel

Création d'un modèle Eloquent avec migration associée

Contexte : Une application doit stocker des articles dans la base de données. Le Problème : Aucun modèle ni table n'existe encore pour représenter ces données. Contraintes : Utiliser artisan pour générer modèle et migration. Définir au minimum deux champs personnalisés. Livrable attendu : Créer un modèle Article avec migration correspondante, exécuter la migration et vérifier la création correcte de la table en base.

laraveleloquentmigration+1
FondamentalLaravel

Création d'une route Laravel avec contrôleur dédié

Contexte : Vous démarrez un nouveau projet Laravel pour une application interne. Le Problème : Aucune route métier n'est encore configurée et l'équipe souhaite exposer un endpoint simple pour valider le bon fonctionnement de l'application. Contraintes : Utiliser un contrôleur dédié généré via artisan. Ne pas placer la logique directement dans routes/web.php. Livrable attendu : Créer une route GET /health pointant vers un contrôleur qui retourne une réponse JSON { "status": "ok" } avec un code HTTP 200.

laravelroutingcontroller+1
FondamentalLaravel

Création d'une vue Blade simple avec données dynamiques

Contexte : Une page doit afficher dynamiquement des données depuis un contrôleur. Le Problème : Aucune vue n'est encore configurée. Contraintes : Utiliser Blade et passer des variables depuis le contrôleur. Livrable attendu : Créer une vue Blade affichant une variable dynamique envoyée depuis le contrôleur.

laravelbladeview+1
FondamentalLaravel

Implémentation d'une relation simple One-to-Many avec Eloquent

Contexte : Une application doit relier des utilisateurs à plusieurs articles. Le Problème : Les relations ne sont pas définies dans les modèles. Contraintes : Définir les méthodes hasMany et belongsTo. Livrable attendu : Implémenter correctement la relation entre User et Article et vérifier la récupération des données liées.

laraveleloquentrelations+1
FondamentalLaravel

Implémentation d'une validation simple avec Request

Contexte : Une route POST accepte des données utilisateur sans validation. Le Problème : Des données invalides peuvent être enregistrées en base. Contraintes : Utiliser la méthode validate() du contrôleur ou FormRequest. Livrable attendu : Implémenter une validation exigeant un champ title obligatoire et une longueur minimale avant enregistrement.

laravelvalidationrequest+1
FondamentalLaravel

Utilisation correcte des paramètres dynamiques dans les routes

Contexte : Une route doit récupérer un article via son identifiant. Le Problème : Le paramètre n'est pas correctement transmis au contrôleur. Contraintes : Définir un paramètre dynamique dans la route. Livrable attendu : Créer une route GET /articles/{id} et retourner l'article correspondant en JSON.

laravelroutingparams+1
AvancéLaravel

Configuration sécurisée pour environnement production

Contexte : L'application doit être déployée en production. Le Problème : DEBUG est activé et certaines configurations sensibles sont exposées. Contraintes : Configurer APP_ENV, APP_DEBUG et gestion des logs. Livrable attendu : Adapter la configuration pour un environnement production sécurisé et prêt au déploiement.

laravelproductionsecurity+2
AvancéLaravel

Gestion centralisée des exceptions API

Contexte : Les erreurs API sont retournées avec des formats incohérents. Le Problème : Aucun format standardisé des erreurs n'est défini. Contraintes : Personnaliser Handler.php. Livrable attendu : Mettre en place une gestion globale des exceptions retournant un format JSON cohérent pour toutes les erreurs.

laravelexceptionsapi+2
AvancéLaravel

Implémentation d'un système d'upload sécurisé avec validation

Contexte : Les utilisateurs doivent pouvoir téléverser des images. Le Problème : Aucun contrôle de type ou de taille n'est en place. Contraintes : Utiliser validation Laravel et stockage via Storage. Livrable attendu : Implémenter un endpoint d'upload sécurisé validant type MIME, taille maximale et stockage approprié.

laraveluploadvalidation+2
AvancéLaravel

Implémentation d'un système de pagination API personnalisée

Contexte : Une API retourne de grandes listes de ressources. Le Problème : Toutes les données sont envoyées en une seule réponse. Contraintes : Utiliser paginate() et formater la réponse. Livrable attendu : Mettre en place une pagination efficace avec métadonnées (total, page, last_page).

laravelpaginationapi+2
AvancéLaravel

Implémentation d'un système de rôles et permissions

Contexte : Une application multi-utilisateurs doit restreindre l'accès selon le rôle (admin, editor, user). Le Problème : Aucun mécanisme de contrôle d'accès n'est implémenté. Contraintes : Utiliser Gates ou Policies. Livrable attendu : Mettre en place un système d'autorisation permettant de protéger certaines actions selon le rôle utilisateur.

laravelauthorizationpolicies+2
AvancéLaravel

Implémentation d'une authentification API avec Laravel Sanctum

Contexte : Une API doit protéger certains endpoints accessibles uniquement aux utilisateurs authentifiés. Le Problème : Aucun système d'authentification par token n'est en place. Contraintes : Utiliser Laravel Sanctum pour générer et vérifier des tokens API. Livrable attendu : Mettre en place un système d'authentification complet incluant login, génération de token et middleware protégeant les routes privées.

laravelsanctumauthentication+2
AvancéLaravel

Implémentation d'une relation Many-to-Many avec table pivot

Contexte : Une application doit associer des utilisateurs à plusieurs rôles. Le Problème : La relation many-to-many n'est pas correctement définie. Contraintes : Créer table pivot et définir belongsToMany dans les modèles. Livrable attendu : Implémenter correctement la relation many-to-many et permettre l'attachement/détachement des rôles.

laraveleloquentrelations+2
AvancéLaravel

Mise en place d'un cache applicatif pour améliorer les performances

Contexte : Certains endpoints exécutent des requêtes coûteuses répétitives. Le Problème : Les temps de réponse augmentent sous charge. Contraintes : Utiliser le système de cache Laravel avec TTL. Livrable attendu : Implémenter un mécanisme de cache réduisant les appels répétés à la base de données.

laravelcacheperformance+2
AvancéLaravel

Optimisation des requêtes Eloquent pour éviter le N+1 problem

Contexte : Une page liste des articles avec leurs auteurs associés. Le Problème : Les performances sont dégradées à cause de requêtes répétées. Contraintes : Utiliser eager loading avec with(). Livrable attendu : Refactoriser les requêtes afin de réduire drastiquement le nombre de requêtes SQL générées.

laraveleloquentperformance+2
AvancéLaravel

Structuration d'une API REST modulaire avec Resource Controllers

Contexte : Votre application Laravel doit exposer une API REST pour un front-end moderne. Le Problème : Les routes sont définies manuellement et la logique CRUD est dispersée. Contraintes : Utiliser un Resource Controller et organiser les routes dans routes/api.php. Livrable attendu : Implémenter un contrôleur REST complet (index, show, store, update, destroy) pour une ressource donnée, avec réponses JSON structurées et codes HTTP appropriés.

laravelrestcontroller+2
ExpertLaravel

Architecture microservices avec communication événementielle

Contexte : Une application monolithique Laravel doit évoluer vers une architecture distribuée. Le Problème : Les modules sont fortement couplés et déployés ensemble. Contraintes : Utiliser un message broker (RabbitMQ ou Kafka) pour communication asynchrone entre services. Livrable attendu : Concevoir une architecture microservices découplant les domaines métier et permettant communication fiable via événements.

laravelmicroservicesrabbitmq+2
ExpertLaravel

Conception d'une architecture hexagonale scalable avec Laravel

Contexte : Votre application Laravel a évolué rapidement et mélange contrôleurs, logique métier et accès Eloquent dans les mêmes classes. Le Problème : Le couplage fort rend les tests difficiles et limite l’évolutivité de l’application. Contraintes : Mettre en place une architecture hexagonale séparant domaine, cas d’usage et infrastructure. La logique métier ne doit pas dépendre directement d’Eloquent. Livrable attendu : Proposer une structure complète incluant entités métier, services applicatifs, interfaces de repository et implémentations concrètes, garantissant testabilité et maintenabilité.

laravelarchitecturehexagonal+2
ExpertLaravel

Implémentation d'un moteur d'autorisation dynamique multi-rôles et multi-tenant

Contexte : Une application SaaS doit gérer des rôles hiérarchiques et permissions dynamiques par organisation. Le Problème : Les règles d'autorisation actuelles sont statiques et difficiles à maintenir. Contraintes : Implémenter un système RBAC ou ABAC personnalisé avec Policies et middleware. Livrable attendu : Concevoir un moteur d’autorisation flexible capable de gérer multi-tenant, rôles complexes et permissions dynamiques.

laravelauthorizationrbac+2
ExpertLaravel

Implémentation d'un système d'authentification avancé avec refresh token rotatif

Contexte : Une API Laravel doit gérer des sessions longue durée de manière sécurisée. Le Problème : Les tokens actuels ne permettent pas une rotation sécurisée ni révocation fine. Contraintes : Mettre en place access token court et refresh token stocké en base avec rotation automatique. Livrable attendu : Concevoir un système complet incluant génération, rotation, révocation et sécurisation des refresh tokens conformément aux bonnes pratiques de sécurité.

laraveljwtsecurity+2
ExpertLaravel

Implémentation d'un système multi-tenant sécurisé

Contexte : Une plateforme SaaS doit gérer plusieurs organisations avec isolation stricte des données. Le Problème : Les données des différents tenants sont stockées dans les mêmes tables sans filtrage systématique. Contraintes : Implémenter un système multi-tenant par champ tenant_id ou base séparée avec middleware dédié. Livrable attendu : Concevoir une architecture garantissant l’isolation complète des données entre tenants et empêchant tout accès croisé non autorisé.

laravelmultitenantsecurity+2
ExpertLaravel

Implémentation d'un système transactionnel robuste avec gestion des rollbacks

Contexte : Une opération critique modifie plusieurs modèles et services externes. Le Problème : En cas d’erreur intermédiaire, l’état devient incohérent. Contraintes : Utiliser DB::transaction et gestion d’erreurs centralisée. Livrable attendu : Concevoir une logique garantissant atomicité et cohérence via transactions et mécanismes de compensation si nécessaire.

laraveltransactionsdatabase+2
ExpertLaravel

Mise en place d'un système d'observabilité et monitoring avancé

Contexte : L’application est déployée sur plusieurs instances en production. Le Problème : Les erreurs et lenteurs sont difficiles à diagnostiquer. Contraintes : Intégrer logs structurés, métriques et monitoring centralisé. Livrable attendu : Mettre en place une architecture d’observabilité complète facilitant analyse des performances, détection d’anomalies et debugging.

laravelmonitoringobservability+2
ExpertLaravel

Optimisation avancée des performances avec cache distribué Redis

Contexte : Certains endpoints critiques subissent une forte charge. Le Problème : Les requêtes base de données deviennent un goulot d’étranglement. Contraintes : Intégrer Redis comme backend de cache avec stratégie d’invalidation fine. Livrable attendu : Mettre en place un système de cache distribué performant garantissant cohérence des données et réduction significative de latence.

laravelrediscache+2
ExpertLaravel

Refonte cloud-native pour scalabilité horizontale et haute disponibilité

Contexte : L’application doit être déployée dans un environnement cloud avec autoscaling. Le Problème : L’architecture actuelle dépend d’états locaux et n’est pas optimisée pour la scalabilité horizontale. Contraintes : Rendre l’application stateless, externaliser sessions, cache et stockage fichiers. Livrable attendu : Proposer une architecture cloud-native compatible Docker et orchestrateurs, garantissant scalabilité horizontale et haute disponibilité.

laravelclouddocker+2
ExpertLaravel

Sécurisation avancée conforme aux standards OWASP

Contexte : Une API Laravel est exposée publiquement et doit respecter des standards élevés de sécurité. Le Problème : Certaines protections contre injection SQL, XSS ou brute force sont insuffisantes. Contraintes : Mettre en place validation stricte, rate limiting, sécurisation headers et protection CSRF adaptée. Livrable attendu : Concevoir une stratégie complète de sécurisation alignée avec les recommandations OWASP.

laravelsecurityowasp+2

Questions originales conçues par CodeDuel. CodeDuel n'est affilié à aucun éditeur ni organisme de certification cité ; les noms de certifications et les marques appartiennent à leurs titulaires et servent uniquement à indiquer le domaine couvert. Signaler un contenu

    Cas pratiques Laravel : 30 mises en situation | CodeDuel