====== Filament ====== Filament es un framework de código abierto para [[informatica:programacion:php:frameworks:laravel|Laravel]] que permite construir paneles de administración modernos y elegantes de forma rápida. Es ideal para crear interfaces de administración (CRUDs, dashboards, etc.) sin necesidad de escribir código frontend complejo. * [[https://filamentphp.com/|Sitio oficial]] ===== Tecnologías principales ===== Filament se construye sobre varias tecnologías: * **Laravel**: framwork PHP que Filament utiliza para aprovechar características como Eloquent ORM, migraciones, autenticación, y la estructura MVC de Laravel. * **Livewire**: para crear componentes dinámicos sin escribir JavaScript puro. * **Alpine.js**: proporciona interactividad ligera en el frontend (menús desplegables, modales, etc.). * **Tailwind CSS**: Framework de estilos utilizado para diseñar todos los componentes. * **Blade**: los componentes de Filament están construidos con plantillas de Blade, lo que permite extenderlos fácilmente. * **Heroicons**: biblioteca de iconos utilizada en los componentes de la interfaz (botones, menús, etc.). ===== Instalación ===== Una vez dentro de nuestro proyecto Laravel, ejecutamos: composer require filament/filament:"^3.3" -W Y ahora instalamos el constructor de paneles de Filament: php artisan filament:install --panels El comando anterior preinstalará también el creador de formularios, tablas, notificaciones, acciones, listas de información y paquetes de //widgets//. Nos aseguramos de haber ejecutado las migraciones (para tener la tabla de usuarios): php artisan migrate ===== Creación de usuarios ===== php artisan make:filament-user ===== Paneles ===== Los paneles son los contenedores principales en Filament. Estos paneles permiten incluir páginas, recursos, formularios, tablas, notificaciones, acciones.... Todos los paneles incluyen un //dashboard// por defecto donde poder incluir //widgets// con estadísticas, gráficas, tablas y más. ===== Tablas ===== ===== Formularios ===== ===== Plugins ===== * **Excel Export**: exportación de datos en fichero Excel. * **Curator**: para gestionar multimedia. * **Spatie Laravel Backup**: permite hacer una copia de seguridad de nuestra aplicación. * **Spatie Laravel Health**: revisión de la salud de nuestra aplicación. * **Jobs monitor**: monitoriza las colas desde un panel. ===== Error 403 en producción ===== Al indicar que el proyecto se ejecutará en producción mediante el fichero ''.env'': APP_ENV=production Filament devolverá un error 403 al iniciar sesión en el panel de administración. Es el comportamiento esperado. Si queremos cambiarlo, hay que modificar el modelo ''app/Models/User.php'': email, '@yourdomain.com') && $this->hasVerifiedEmail(); } } En el ejemplo anterior, solo permitiríamos el acceso al panel a las cuentas cuyo dominio fuesen ''yourdomain.com'' y tuvieran el e-mail verificado. * [[https://filamentphp.com/content/danharrin-panel-403-in-production|Why is my panel showing a 403 error in production?]] ===== Recursos ===== * [[https://heroicons.com/|Heroicons]]: iconos SVG de los creadores de Tailwind CSS. * [[https://filamentphp.com/plugins|Filament plugins]]