Filament v5 : La Nouvelle Ère du Développement Admin avec Laravel
Introduction : Un Alignement Technologique Stratégique
Depuis le 16 janvier 2026, Filament v5 marque un tournant majeur dans l'écosystème Laravel. Bien qu'elle ne révolutionne pas les fonctionnalités internes, cette version établit une compatibilité native avec Livewire v4, garantissant une transition fluide pour les projets existants.
Pourquoi Filament v5 Maintenant ?
Le Choix de la Compatibilité
L'équipe Filament a pris une décision stratégique : créer une version majeure plutôt que de forcer une rupture de compatibilité. Cette approche protège les projets en production qui utilisent Livewire v3 et souhaitent rester sur Filament v4.
Points clés :
- Support natif de Livewire v4
- Évite les breaking changes sur les projets v4
- Permet une migration progressive et volontaire
- Aligne Filament avec les dernières innovations de Livewire
Les Nouveautés et Évolutions Clés
1. Filament Blueprint : L'IA au Service de la Planification
Filament Blueprint est un outil premium révolutionnaire qui transforme la façon de concevoir des applications Filament.
Caractéristiques :
- Génération de plans d'implémentation structurés
- Assistance IA pour la planification d'applications complexes
- Réduction du temps de conception
- Précision accrue dans la définition des ressources
2. Mise à Jour v5.2.0 (Février 2026) : Les Améliorations Ergonomiques
Seulement quelques semaines après le lancement, Filament v5.2.0 a enrichi la plateforme avec des composants pratiques :
Composant Callout : Mise en évidence contextuelle Lignes de tableau empilées : Responsive design amélioré Modales d'actions empilées : Gestion avancée des modales Filtres différés : Optimisation des performances Fonctionnalités héritées : Redimensionnement d'images, mentions Slack, actions JavaScript
Guide de Mise à Jour Rapide
Prérequis
Avant de mettre à jour, vérifiez votre environnement :
- PHP : 8.2 ou supérieur
- Laravel : 11 ou supérieur
- Composer : À jour
Étapes de Migration
Étape 1 : Installer l'outil de mise à jour
1composer require filament/upgrade:"^5.0" -W --devÉtape 2 : Exécuter le script de migration
1vendor/bin/filament-v5Étape 3 : Migrer vos composants Livewire
Consultez la documentation officielle de Livewire pour adapter vos composants personnalisés à Livewire v4.
Extraits de Code : Les Nouveautés en Action
1. Le Composant Callout (v5.2+)
Idéal pour afficher des avertissements, des informations ou des instructions contextuelles dans vos formulaires.
1<?php 2 3namespace App\Filament\Resources; 4 5use Filament\Forms\Components\Callout; 6use Filament\Forms\Form; 7 8class ProductResource extends Resource 9{10 public static function form(Form $form): Form11 {12 return $form13 ->schema([14 Callout::make('stock-warning')15 ->title('⚠️ Alerte Stock')16 ->content('Le stock actuel est inférieur au seuil de sécurité (10 unités).')17 ->icon('heroicon-m-exclamation-triangle')18 ->color('warning') // 'danger', 'info', 'success'19 ->columnSpanFull(),20 21 TextInput::make('name')22 ->label('Nom du produit')23 ->required(),24 25 TextInput::make('stock')26 ->label('Stock')27 ->numeric(),28 ]);29 }30}Utilisation : Alertes dynamiques, informations contextuelles, instructions de saisie
2. Tableaux avec Lignes Empilées (Stacked Rows)
Améliore considérablement le rendu sur mobile en empilant les colonnes verticalement.
1<?php 2 3namespace App\Filament\Resources; 4 5use Filament\Tables\Columns\Layout\Stack; 6use Filament\Tables\Columns\TextColumn; 7use Filament\Tables\Columns\BadgeColumn; 8use Filament\Tables\Table; 9 10class OrderResource extends Resource11{12 public static function table(Table $table): Table13 {14 return $table15 ->columns([16 Stack::make([17 TextColumn::make('order_number')18 ->label('Commande')19 ->weight('bold')20 ->size('lg'),21 22 TextColumn::make('customer.name')23 ->label('Client')24 ->color('gray')25 ->size('sm'),26 27 TextColumn::make('created_at')28 ->label('Date')29 ->dateTime('d/m/Y H:i')30 ->color('gray')31 ->size('sm'),32 ]),33 34 BadgeColumn::make('status')35 ->label('Statut')36 ->colors([37 'danger' => 'cancelled',38 'warning' => 'pending',39 'success' => 'completed',40 ]),41 42 TextColumn::make('total')43 ->label('Total')44 ->money('EUR')45 ->weight('bold'),46 ]);47 }48}Avantages :
- Meilleure lisibilité sur mobile
- Réduction de la largeur requise
- Présentation plus compacte et professionnelle
3. Modales d'Actions Empilées (Stacked Modals)
Ouvrez une action depuis une autre modale sans fermer la première. Parfait pour les workflows complexes.
1<?php 2 3namespace App\Filament\Resources\OrderResource\Pages; 4 5use Filament\Resources\Pages\ListRecords; 6use Filament\Tables\Actions\CreateAction; 7use Filament\Tables\Actions\Action; 8 9class ListOrders extends ListRecords10{11 protected function getActions(): array12 {13 return [14 CreateAction::make()15 ->model(Order::class)16 ->stickyModalHeader()17 ->stickyModalFooter()18 ->slideOver(), // Ouverture latérale19 ];20 }21}Cas d'usage :
- Créer une catégorie depuis une modale de produit
- Ajouter un contact depuis une modale de commande
- Workflows multi-étapes
4. Filtres Différés pour Widgets de Graphiques
Optimise le temps de chargement initial en chargeant les données du graphique de manière asynchrone.
1<?php 2 3namespace App\Filament\Widgets; 4 5use Filament\Widgets\ChartWidget; 6use Illuminate\Support\Facades\DB; 7 8class MonthlySalesChart extends ChartWidget 9{10 protected static ?string $heading = '📊 Ventes Mensuelles';11 12 // Chargement asynchrone13 protected static bool $isLazy = true;14 15 // Hauteur du graphique16 protected static ?int $contentHeight = 300;17 18 protected function getData(): array19 {20 $salesData = DB::table('orders')21 ->selectRaw('MONTH(created_at) as month, SUM(total) as total')22 ->groupByRaw('MONTH(created_at)')23 ->get();24 25 return [26 'datasets' => [27 [28 'label' => 'Ventes (€)',29 'data' => $salesData->pluck('total')->toArray(),30 'borderColor' => '#3b82f6',31 'backgroundColor' => 'rgba(59, 130, 246, 0.1)',32 'tension' => 0.4,33 ],34 ],35 'labels' => ['Jan', 'Fév', 'Mar', 'Avr', 'Mai', 'Juin', 'Juil', 'Aoû', 'Sep', 'Oct', 'Nov', 'Déc'],36 ];37 }38 39 protected function getType(): string40 {41 return 'line';42 }43}Bénéfices :
- Page de tableau de bord qui se charge plus rapidement
- Meilleure expérience utilisateur
- Calculs complexes exécutés en arrière-plan
5. Mentions de Type Slack (Rich Editor)
Activez les mentions @utilisateur dans vos éditeurs de texte enrichi.
1<?php 2 3namespace App\Filament\Resources; 4 5use Filament\Forms\Components\RichEditor; 6use Filament\Forms\Form; 7 8class CommentResource extends Resource 9{10 public static function form(Form $form): Form11 {12 return $form13 ->schema([14 RichEditor::make('content')15 ->label('Commentaire')16 ->mentionable() // Active les mentions @user17 ->toolbarButtons([18 'attachFiles',19 'blockquote',20 'bold',21 'bulletList',22 'codeBlock',23 'heading',24 'italic',25 'link',26 'orderedList',27 'redo',28 'strike',29 'underline',30 'undo',31 ])32 ->required(),33 ]);34 }35}Fonctionnalités :
- Autocomplétion des utilisateurs
- Notifications automatiques
- Formatage Slack-like
6. Redimensionnement Natif des Images
Héritée de la v4.5, cette fonctionnalité permet de redimensionner les images directement dans le formulaire.
1<?php 2 3use Filament\Forms\Components\FileUpload; 4 5FileUpload::make('avatar') 6 ->label('Avatar') 7 ->image() 8 ->imageResizeMode('cover') // 'contain', 'cover', 'fill' 9 ->imageCropAspectRatio('1:1') // Ratio de recadrage10 ->imageResizeTargetWidth(500)11 ->imageResizeTargetHeight(500)12 ->directory('avatars')13 ->required(),Checklist de Migration
✅ Vérifier PHP 8.2+ et Laravel 11+
✅ Exécuter composer require filament/upgrade:"^5.0" -W --dev
✅ Lancer vendor/bin/filament-v5
✅ Migrer les composants Livewire personnalisés
✅ Tester les formulaires et tableaux existants
✅ Vérifier la compatibilité des packages Filament tiers
✅ Déployer progressivement en environnement de staging
Conclusion
Filament v5 représente une évolution mature et réfléchie. Elle ne cherche pas à révolutionner, mais à consolider et à offrir une base solide pour l'avenir. Avec le support natif de Livewire v4 et les nouvelles ergonomies introduites en v5.2, cette version positionne Filament comme la solution d'administration la plus moderne et accessible de l'écosystème Laravel.
Prêt à migrer ? La transition est simple, et les bénéfices immédiats ! 🚀
discours technique / 1
Veuillez vous authentifier pour contribuer.
Version 3