Actualité

Laravel Development -filament

WAFFO LELE ROSTAND
WAFFO LELE ROSTAND
17 Jan 2026 2 min de lecture
Laravel Development -filament

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

BASH
1composer require filament/upgrade:"^5.0" -W --dev

Étape 2 : Exécuter le script de migration

BASH
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.

PHP
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): Form
11 {
12 return $form
13 ->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.

PHP
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 Resource
11{
12 public static function table(Table $table): Table
13 {
14 return $table
15 ->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.

PHP
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 ListRecords
10{
11 protected function getActions(): array
12 {
13 return [
14 CreateAction::make()
15 ->model(Order::class)
16 ->stickyModalHeader()
17 ->stickyModalFooter()
18 ->slideOver(), // Ouverture latérale
19 ];
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.

PHP
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 asynchrone
13 protected static bool $isLazy = true;
14 
15 // Hauteur du graphique
16 protected static ?int $contentHeight = 300;
17 
18 protected function getData(): array
19 {
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(): string
40 {
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.

PHP
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): Form
11 {
12 return $form
13 ->schema([
14 RichEditor::make('content')
15 ->label('Commentaire')
16 ->mentionable() // Active les mentions @user
17 ->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.

PHP
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 recadrage
10 ->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 ! 🚀

L'intelligence est faite pour être partagée

3

discours technique / 1

Veuillez vous authentifier pour contribuer.

R
Ro 2 months ago

Version 3