Herramientas de usuario

Herramientas del sitio


informatica:programacion:php:frameworks:laravel:filament

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
informatica:programacion:php:frameworks:laravel:filament [2025/04/02 11:03] – [Instalación] tempwininformatica:programacion:php:frameworks:laravel:filament [2025/04/07 15:30] (actual) – [En producción] tempwin
Línea 1: Línea 1:
 ====== Filament ====== ====== 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. Está construido sobre tecnologías como Livewire (para componentes dinámicos), Alpine.js (para interactividad) y Tailwind CSS (para estilos). Es ideal para crear interfaces de administración (CRUDs, dashboards, etc.) sin necesidad de escribir código frontend complejo.+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]]   * [[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 ===== ===== Instalación =====
  
Línea 18: Línea 28:
 php artisan filament:install --panels php artisan filament:install --panels
 </code> </code>
 +
 +<WRAP center round info 60%>
 +El comando anterior preinstalará también el creador de formularios, tablas, notificaciones, acciones, listas de información y paquetes de //widgets//.
 +</WRAP>
 +
  
 Nos aseguramos de haber ejecutado las migraciones (para tener la tabla de usuarios): Nos aseguramos de haber ejecutado las migraciones (para tener la tabla de usuarios):
Línea 39: Línea 54:
  
 ===== Formularios ===== ===== 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'':
 +
 +<code>
 +APP_ENV=production
 +</code>
 +
 +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'':
 +
 +<code php>
 +<?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();
 +    }
 +}
 +</code>
 +
 +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]]
informatica/programacion/php/frameworks/laravel/filament.1743584628.txt.gz · Última modificación: por tempwin