Filament PHP

Filament est un framework d’interface d’administration open source pour Laravel. Il permet de créer rapidement des tableaux de bord, des panels d’administration et des interfaces de gestion pour les applications web, tout en respectant les bonnes pratiques Laravel.

Filament PHP

Prérequis

Livewire image
Livewire

Livewire est un framework full-stack pou...

Laravel image
Laravel

Laravel est un framework PHP open source...

Prochaine étape

Aucune prochaine étape

Aucune prochaine étape pour cette catégorie.

À propos de Filament PHP

Filament fournit un écosystème complet pour construire des outils d’administration modernes :

  • Resource Management : création automatique de CRUD pour vos modèles Eloquent.
  • Forms et Tables : formulaires et tableaux entièrement configurables et réactifs.
  • Widgets : composants pour afficher des statistiques ou des informations dynamiques.
  • Plugins et Extensions : possibilité d’étendre Filament pour ajouter des fonctionnalités spécifiques.

Filament s’intègre parfaitement avec Livewire pour les interactions en temps réel et avec Tailwind CSS pour des interfaces modernes et responsives.

Installation

Dans un projet Laravel existant :

1composer require filament/filament

Publier les assets et les fichiers de configuration :

1php artisan filament:install

Créer un utilisateur administrateur :

1php artisan make:filament-user

Exemple de Resource pour un modèle

Supposons que vous avez un modèle Post :

1php artisan make:filament-resource Post

Cela génère un ensemble de fichiers permettant de gérer le CRUD pour le modèle Post :

  • Formulaire de création et modification
  • Table de listing avec recherche, filtres et pagination
  • Autorisations et relations Eloquent
Exemple de formulaire dans PostResource.php :
1public static function form(Form $form): Form
2{
3 return $form
4 ->schema([
5 TextInput::make('title')
6 ->required()
7 ->maxLength(255),
8 Textarea::make('content')
9 ->required(),
10 Toggle::make('published'),
11 ]);
12}
Exemple de table dans PostResource.php :
1public static function table(Table $table): Table
2{
3 return $table
4 ->columns([
5 TextColumn::make('title')->sortable()->searchable(),
6 BooleanColumn::make('published'),
7 TextColumn::make('created_at')->dateTime(),
8 ])
9 ->filters([
10 //
11 ])
12 ->actions([
13 Tables\Actions\EditAction::make(),
14 Tables\Actions\DeleteAction::make(),
15 ])
16 ->bulkActions([
17 Tables\Actions\DeleteBulkAction::make(),
18 ]);
19}

Widgets et Dashboard

Filament permet de créer des widgets personnalisés pour le tableau de bord :

1namespace App\Filament\Widgets;
2 
3use Filament\Widgets\Widget;
4 
5class TotalUsers extends Widget
6{
7 protected static string $view = 'filament.widgets.total-users';
8 
9 public $total;
10 
11 public function mount(): void
12 {
13 $this->total = \App\Models\User::count();
14 }
15}

Vue Blade associée (resources/views/filament/widgets/total-users.blade.php) :

1<div class="p-4 bg-white shadow rounded">
2 <h2>Total utilisateurs</h2>
3 <p class="text-2xl font-bold">{{ $total }}</p>
4</div>

Bonnes pratiques

  • Découper les resources par modèles pour une meilleure organisation.
  • Utiliser les relations Eloquent dans les tables et formulaires pour simplifier les CRUD.
  • Exploiter les widgets pour créer des tableaux de bord dynamiques et informatifs.
  • Personnaliser les thèmes avec Tailwind CSS pour s’adapter à l’identité visuelle du projet.
  • Utiliser Livewire pour gérer des interactions réactives côté serveur sans JavaScript.

Filament PHP est un outil puissant et moderne pour construire rapidement des interfaces d’administration dans Laravel. Il permet de créer des applications professionnelles avec des formulaires, des tables et des dashboards interactifs tout en gardant une intégration native avec Laravel, Tailwind CSS et Livewire.