1. Accueil
  2. Articles
3 min de lecture
4 vues

Laravel Testing avancé, Utilisation de Claude AI pour Laravel, et Gestion des Requêtes avec laravel-query-builder

#Releases et mises à jour

#Des tests d'intégration réalistes pour vos packages Laravel

L'équipe de Flare a partagé une approche poussée pour tester un package Laravel dans un contexte réaliste. Ils construisent des tests end-to-end d'intégration en utilisant une application Testbench complète accompagnée d'un vrai serveur HTTP et d'un worker de queue. Cette méthode leur permet de valider le comportement asynchrone avec des jobs en file, d'écrire les payloads sur disque, puis de vérifier les traces et erreurs attendues via des helpers spécifiques. Cette approche renforce la confiance dans la stabilité du package dans un environnement proche de la production.

1// Exemple de test envoyé dans l'article
2$this->post('/api/send', $payload)
3 ->assertStatus(200);
4$this->assertDatabaseHas('jobs', ['payload' => $payload]);
1// Exemple de test envoyé dans l'article
2$this->post('/api/send', $payload)
3 ->assertStatus(200);
4$this->assertDatabaseHas('jobs', ['payload' => $payload]);

En savoir plus →

#laravel-query-builder v7.3.0: Recherche multi-colonnes avec un seul paramètre URL

La nouvelle version 7.3.0 de laravel-query-builder introduit une fonctionnalité facilitant la recherche sur plusieurs colonnes via un seul paramètre dans l'URL. Cette amélioration simplifie la construction de filtres complexes tout en gardant une API propre et intuitive. L'article détaille aussi les bases d'utilisation pour bien comprendre comment grouper plusieurs filtres sous une même clé.

1$builder->allowedFilters([
2 AllowedFilter::callback('search', function ($query, $value) {
3 $query->where('name', 'like', "%{$value}%")
4 ->orWhere('email', 'like', "%{$value}%");
5 })
6]);
1$builder->allowedFilters([
2 AllowedFilter::callback('search', function ($query, $value) {
3 $query->where('name', 'like', "%{$value}%")
4 ->orWhere('email', 'like', "%{$value}%");
5 })
6]);

En savoir plus →

#Nouveaux outils et patterns

#Exploiter Claude Skills pour automatiser la génération de code Laravel

Dries expose comment ils utilisent Claude Skills, une technologie d'IA, pour automatiser la génération de code répétitif dans des projets clients Laravel. Cela inclut la création de requêtes Saloon, Data Transfer Objects (DTOs) et pages Livewire. Cet usage intelligent permet de gagner beaucoup de temps tout en soulignant l'importance de la relecture humaine pour éviter les erreurs dans le code généré.

En savoir plus →

#Event Sourcing et IA: Un tandem pour Laravel

Une démonstration encore plus poussée montre l'association du pattern event sourcing avec de l'IA, notamment dans la conception et la génération automatique de code domaine basé sur le package spatie/laravel-event-sourcing. Une piste prometteuse pour les architectures complexes souhaitant automatiser des aspects répétitifs tout en profitant des bonnes pratiques d'event sourcing.

En savoir plus →

#Tutoriels et réflexion

#Le pattern ADR (Action/Domain/Responder) appliqué à Laravel

Un article pédagogique explique le pattern ADR, un modèle architectural qui divise clairement les responsabilités entre l'action (contrôleur), le domaine (logique métier), et le répondeur (vue/retour). Appliqué à Laravel, ce pattern aide à structurer proprement les projets tout en améliorant la maintenabilité et la testabilité.

1class ShowUser implements ActionInterface
2{
3 public function handle($request): View
4 {
5 $user = User::find($request->id);
6 return new UserResponder($user);
7 }
8}
1class ShowUser implements ActionInterface
2{
3 public function handle($request): View
4 {
5 $user = User::find($request->id);
6 return new UserResponder($user);
7 }
8}

En savoir plus →

#Contrôle d'accès RBAC sans packages externes

Un approfondissement sur la mise en œuvre de RBAC (Role-Based Access Control) dans Laravel explique comment gérer les rôles et permissions de manière native, avec un focus sur la prise en compte des équipes en mode collaboratif. Cela offre une alternative légère et flexible aux solutions tierces souvent trop lourdes.

En savoir plus →