Filament pour Laravel : Un accélérateur de développement d’administrations

Filament est un package Laravel qui permet de créer des interfaces d’administration élégantes et fonctionnelles pour vos applications de manière rapide et intuitive.

Pourquoi utiliser Filament ?

  • Rapidité de développement : Filament fournit un ensemble de composants prêts à l’emploi qui vous permettent de créer des formulaires, des tables, des filtres et bien plus encore en quelques lignes de code.
  • Esthétique moderne : Basé sur Tailwind CSS, Filament offre une apparence moderne et personnalisable pour s’intégrer parfaitement à votre application.
  • Fonctionnalités riches : Filament intègre de nombreuses fonctionnalités avancées telles que la recherche, le tri, la pagination, les relations, les autorisations et bien d’autres.
  • Communauté active : Filament bénéficie d’une communauté active et grandissante, ce qui signifie que vous trouverez de nombreux tutoriels, ressources et une aide précieuse en ligne.
    Les principaux avantages de Filament
  • Réduction du temps de développement : En éliminant la nécessité de coder de nombreuses fonctionnalités de base, Filament vous permet de vous concentrer sur la logique métier de votre application.
  • Amélioration de l’expérience utilisateur : Les interfaces créées avec Filament sont intuitives et faciles à utiliser, ce qui améliore l’expérience des utilisateurs de votre administration.
  • Flexibilité : Filament est hautement personnalisable, vous permettant d’adapter l’interface à vos besoins spécifiques.

 

Installation

Prérequis

Filament nécessite les éléments suivants pour fonctionner :

  • PHP 8.1 et +
  • Laravel v10.0 et +
  • Livewire v3.0 et +

Par défaut, l’URL du tableau de bord Filament est /admin. Vous pouvez la personnaliser dans le fichier filament.php.

Installation

Installez le Filament Panel Builder en exécutant les commandes suivantes dans le répertoire de votre projet Laravel :

composer require filament/filament:"^3.2" -W php artisan filament:install --panels

Cela créera et enregistrera un nouveau fournisseur de services Laravel appelé

app/Providers/Filament/AdminPanelProvider.php

Si vous rencontrez une erreur lors de l’accès à votre panneau, vérifiez que le fournisseur de services est enregistré dans

bootstrap/providers.php

(Laravel 11 et versions ultérieures) ou

config/app.php

(Laravel 10 et versions antérieures). Sinon, vous devez l’ajouter manuellement.

Créer un utilisateur

Vous pouvez créer un nouveau compte utilisateur avec la commande suivante :

php artisan make:filament-user

Ouvrez

/admin

dans votre navigateur Web, connectez-vous et commencez à construire votre application !

Utilisation d’autres packages Filament

Le Filament Panel Builder installe par défaut les packages suivants : Form Builder, Table Builder, Notifications, Actions, Infolists, et Widgets. Aucune étape d’installation supplémentaire n’est nécessaire pour utiliser ces packages dans un panneau.

Amélioration des performances des panneaux Filament

Optimisation de Filament pour la production

Pour optimiser Filament pour la production, vous devez exécuter la commande suivante dans votre script de déploiement :

php artisan filament:optimize

Cette commande mettra en cache les composants Filament ainsi que les icônes Blade, ce qui peut améliorer significativement les performances de vos panneaux Filament. Cette commande est un raccourci pour les commandes

php artisan filament:cache-components

et

php artisan icons:cache

Pour vider tous les caches à la fois, vous pouvez exécuter :

php artisan filament:optimize-clear

Mise en cache des composants Filament

Si vous n’utilisez pas la commande

filament:optimize

vous pouvez envisager d’exécuter

php artisan filament:cache-components

dans votre script de déploiement, surtout si vous avez un grand nombre de composants (ressources, pages, widgets, gestionnaires de relations, composants Livewire personnalisés, etc.). Cela créera des fichiers de cache dans le répertoire

bootstrap/cache/filament

de votre application, ce qui peut améliorer significativement les performances de Filament dans certaines applications en réduisant le nombre de fichiers à scanner et à auto-découvrir.

Cependant, si vous développez activement votre application en local, vous devez éviter d’utiliser cette commande, car elle empêchera la découverte de nouveaux composants jusqu’à ce que le cache soit vidé ou reconstruit.

Pour vider le cache à tout moment sans le reconstruire, exécutez :

php artisan filament:clear-cached-components

Mise en cache des icônes Blade

Si vous n’utilisez pas la commande

filament:optimize

, vous pouvez envisager d’exécuter

php artisan icons:cache

localement, ainsi que dans votre script de déploiement. En effet, Filament utilise le package Blade Icons, qui peut être beaucoup plus performant lorsqu’il est mis en cache.

Activation d’OPcache sur votre serveur

D’après la documentation Laravel Forge : – L’optimisation de l’OPcache PHP pour la production configure OPcache pour stocker votre code PHP compilé en mémoire, ce qui améliore considérablement les performances.

Veuillez utiliser un moteur de recherche pour trouver les instructions d’installation OPcache pertinentes pour votre environnement.

Optimisation de votre application Laravel

Vous devriez également envisager d’optimiser votre application Laravel pour la production en exécutant

php artisan optimize

dans votre script de déploiement. Cela mettra en cache les fichiers de configuration et les routes.

Déploiement en production

Autoriser les utilisateurs à accéder à un panneau

Par défaut, tous les modèles User peuvent accéder à Filament en local. Cependant, lors du déploiement en production, vous devez mettre à jour votre fichier

App\Models\User.php

pour implémenter le contrat

FilamentUser

afin de garantir que seuls les utilisateurs autorisés peuvent accéder à votre panneau :

<?php namespace App\Models; use Filament\Models\Contracts\FilamentUser; use Filament\Panel; use Illuminate\Foundation\Auth\User as Authenticatable; class User extends Authenticatable implements FilamentUser { // ... public function canAccessPanel(Panel $panel): bool { return str_ends_with($this->email, '@yourdomain.com') && $this->hasVerifiedEmail(); } }

Si vous ne complétez pas ces étapes, une erreur 403 Forbidden sera renvoyée lorsque vous accéderez à l’application en production.

Utiliser un disque de stockage prêt pour la production

Filament dispose d’un disque de stockage défini dans la configuration, qui est par défaut défini sur

public

Vous pouvez définir la variable d’environnement

FILAMENT_FILESYSTEM_DISK

pour le modifier.

public

bien qu’idéal pour le développement local, n’est pas adapté à la production. Il ne prend pas en charge la visibilité des fichiers, donc les fonctionnalités de Filament telles que les téléchargements de fichiers créeront des fichiers publics. En production, vous devez utiliser un disque prêt pour la production comme

s3

avec une politique d’accès privé, afin de prévenir tout accès non autorisé aux fichiers téléchargés.

Publication de la configuration

Vous pouvez publier la configuration du package Filament (si nécessaire) en utilisant la commande suivante :

php artisan vendor:publish --tag=filament-config

Publication des traductions

Vous pouvez publier les fichiers de langue pour les traductions (si nécessaire) avec la commande suivante :

php artisan vendor:publish --tag=filament-panels-translations

Étant donné que ce package dépend d’autres packages Filament, vous pouvez publier les fichiers de langue pour ces packages avec les commandes suivantes :

php artisan vendor:publish --tag=filament-actions-translations php artisan vendor:publish --tag=filament-forms-translations php artisan vendor:publish --tag=filament-infolists-translations php artisan vendor:publish --tag=filament-notifications-translations php artisan vendor:publish --tag=filament-tables-translations php artisan vendor:publish --tag=filament-translations

Mise à niveau

Filament se met automatiquement à jour vers la dernière version compatible lorsqu’une mise à jour de Composer est effectuée. Après toute mise à jour, tous les caches Laravel doivent être vidés et les ressources frontend doivent être republiées. Vous pouvez tout faire en une seule fois en utilisant la commande

filament:upgrade

qui devrait avoir été ajoutée à votre fichier

composer.json

lors de la première exécution de

filament:install
"post-autoload-dump": [ // ... "@php artisan filament:upgrade" ],

 

filament:upgrade

ne gère pas réellement le processus de mise à jour, car Composer s’en charge déjà. Si vous effectuez une mise à jour manuelle sans hook

post-autoload-dump

vous pouvez exécuter la commande vous-même :

composer update php artisan filament:upgrade

Sites Ressources e-Plus Pour Laravel 11

1. Packagist Description : Le principal dépôt de packages PHP, avec une catégorie spécifique pour Laravel. Lien : https://packagist.org Ressources :...

Sites Ressources e-Plus Pour Laravel 11

1. Packagist Description : Le principal dépôt de packages PHP, avec une catégorie spécifique pour Laravel. Lien : https://packagist.org Ressources :...