Todo sobre el lanzamiento de Filament v4 Beta: Recursos anidados, autenticación multi-factor y mucho más
4 min de lectura

Todo sobre el lanzamiento de Filament v4 Beta: Recursos anidados, autenticación multi-factor y mucho más

804 palabras

El equipo de Filament ha anunciado emocionantes detalles sobre el próximo lanzamiento de Filament v4 Beta, y sin duda es la versión más esperada hasta la fecha. Filament v4 es el lanzamiento más grande y repleto de características que Filament haya tenido nunca, superando incluso a la masiva v3 que requirió más de 100 versiones menores.

Las características más destacadas de Filament v4

Recursos Anidados (Nested Resources)

Una de las solicitudes más longevas de la comunidad finalmente se hace realidad. Los recursos anidados permiten operar sobre un recurso de Filament dentro del contexto de un recurso padre.

Ejemplo práctico: En un sistema de gestión de aprendizaje, tendrías un CourseResource para tu modelo Course. Dentro de un curso, también tendrías muchos objetos Lesson relacionados. Anteriormente en v3, solo podías editar registros de Lesson mediante un modal dentro del CourseResource. Ahora, con v4, puedes editar una Lesson en el contexto de su Course relacionado, pero en una página completa.

Crear un recurso anidado es sencillo: usa el comando make:filament-resource como lo harías para crear un recurso normal, pero añade la bandera –nested.

php artisan make:filament-resource LessonResource --nested

Autenticación Multi-Factor (MFA) Integrada

La autenticación multi-factor se considera casi una necesidad en la era moderna de autenticación de aplicaciones, y Filament v4 la incluye de serie.

Características de MFA:

  • Autenticación por app: Compatible con Google Authenticator, Authy o Microsoft Authenticator
  • Autenticación por email: Envío de códigos de un solo uso al correo electrónico
  • Configuración automática: Solo tienes que habilitar el sistema y Filament hará el trabajo por ti
use Filament\Auth\MultiFactor\App\AppAuthentication;
use Filament\Auth\MultiFactor\Email\EmailAuthentication;

public function panel(Panel $panel): Panel 
{
    return $panel
        ->multiFactorAuthentication([
            AppAuthentication::make(),
            EmailAuthentication::make()->codeExpiryMinutes(2),
        ], isRequired: true);
}

Tablas con Datos Estáticos

Otro cambio revolucionario: las tablas de Filament ahora pueden tomar datos estáticos que no están respaldados por modelos y mostrarlos con todas las mismas características que conoces y amas.

Anteriormente, la recomendación era crear un “Modelo” respaldado por Sushi, pero esto no funcionaba en todas las situaciones. Ahora es tan simple como pasar un array de datos al método records():

Table::make()
    ->records([
        ['name' => 'Juan', 'email' => 'juan@example.com'],
        ['name' => 'María', 'email' => 'maria@example.com'],
    ])
    ->columns([
        TextColumn::make('name'),
        TextColumn::make('email'),
    ]);

Mejoras en Rendimiento y Experiencia de Usuario

Renderizado Parcial

Con el renderizado parcial en Filament v4, solo la parte específica del formulario que necesita actualizarse se refresca, proporcionando una experiencia de usuario más fluida y rápida.

Iconos Heroicons Mejorados

La nueva clase enum Heroicon proporciona autocompletado IDE para ayudarte a encontrar rápidamente el icono que necesitas, sin más cadenas mágicas. Cada icono está disponible en variantes sólidas y delineadas.

use Filament\Support\Enums\Heroicon;

// Antes
->icon('heroicon-o-star')

// Ahora
->icon(Heroicon::OutlinedStar)

Esquemas Unificados y Flexibilidad

Sistema de Esquemas Server-Driven UI

Los esquemas forman la base del enfoque Server-Driven UI de Filament. Te permiten construir interfaces de usuario en PHP usando objetos de configuración estructurados.

Componentes disponibles:

  • Campos de formulario
  • Entradas de lista de información
  • Componentes de diseño
  • Componentes principales como texto y botones

Nuevos Componentes

Editor de Código: Permite a los usuarios escribir y editar código directamente en la interfaz, compatible con HTML, CSS, JavaScript, PHP y JSON.

Componente Slider: Permite a los usuarios seleccionar uno o más valores numéricos arrastrando un control a lo largo de una pista, ideal para rangos, calificaciones o porcentajes.

Repetidores de Tabla: Muestran elementos de repetidor en un diseño de tabla usando columnas definidas.

Configuración de Zona Horaria Global

La nueva facade FilamentTimezone te permite establecer una zona horaria predeterminada para Filament globalmente, simplificando la configuración por defecto en múltiples componentes como DateTimePicker, TextColumn y TextEntry.

FilamentTimezone::set('Europe/Madrid');

Mejoras en Accesibilidad

Filament v4 toma la accesibilidad en serio con:

  • Etiquetas dinámicas: Se ajustan basándose en la profundidad del esquema
  • Gestión de contraste de colores: Usando colores OKLCH para cumplir con las directrices WCAG
  • Container Queries: Nueva característica CSS que permite a los elementos reaccionar al tamaño de su contenedor padre

Compatibilidad con Tailwind CSS v4

Tailwind CSS v4 es una actualización importante centrada en el rendimiento, flexibilidad y estándares web modernos, con un sistema de configuración renovado y construcciones más rápidas.

¿Cuándo Estará Disponible?

Aunque el equipo no ha dado una fecha exacta, se espera que la beta esté disponible “en un futuro cercano” según el anuncio oficial. El equipo ha confirmado que están trabajando en los detalles finales del lanzamiento.

Conclusión

Filament v4 promete ser un salto cuántico en funcionalidad y experiencia de desarrollador. Con recursos anidados nativos, autenticación multi-factor integrada, soporte para datos estáticos en tablas y mejoras significativas en rendimiento, esta versión consolidará aún más a Filament como la herramienta de referencia para construir paneles administrativos en Laravel.

La combinación de nuevas características potentes con mejoras en la experiencia de usuario hace de Filament v4 una actualización imprescindible para cualquier desarrollador Laravel que trabaje con interfaces administrativas.

¿Estás emocionado por estas nuevas características? ¡Comparte tus pensamientos sobre qué característica de Filament v4 esperas más!

Comentarios

Artículos relacionados

14 min

2873 palabras

La Filament v4 Beta ha llegado oficialmente, y es sin duda la actualización más ambiciosa y completa en la historia de este framework. Después de explorar en detalle todas las nuevas características, puedo afirmar que esta versión representa un salto cuántico en términos de rendimiento, facilidad de uso y capacidades de desarrollo.

En este análisis exhaustivo, vamos a explorar cada una de las nuevas características de Filament v4, explicando no solo qué es nuevo, sino también cómo estas mejoras pueden transformar tu flujo de trabajo y las posibilidades de tus aplicaciones.

6 min

1247 palabras

Idempotencia en Laravel: Cómo Evitar Duplicados en tus APIs con Elegancia

En el desarrollo de APIs modernas, uno de los desafíos más críticos es garantizar que las operaciones no se ejecuten múltiples veces de forma accidental. Imagina un usuario que realiza un pago y, por problemas de conectividad, hace clic varias veces en el botón “Pagar”. Sin las medidas adecuadas, podrías procesar múltiples pagos por la misma transacción. Aquí es donde entra en juego la idempotencia.

1 min

106 palabras

Options Pattern in Golang

Option pattern is a functional programming pattern that is used to provide optional arguments to a function that can be used to modify its behavior.

How to create a simple event streaming in Laravel?

Event streams provide you with a way to send events to the client without having to reload the page. This is useful for things like updating the user interface in real-time changes are made to the database.

11 min

2260 palabras

¿Cuántas veces has comenzado un proyecto Laravel creando manualmente modelos, controladores, migraciones, factories, form requests y tests uno por uno? Si eres como la mayoría de desarrolladores Laravel, probablemente has perdido incontables horas en estas tareas repetitivas que, aunque necesarias, no aportan valor directo a la lógica de negocio de tu aplicación.

Laravel Blueprint está cambiando completamente este paradigma. Esta herramienta de generación de código, creada por Jason McCreary (el mismo genio detrás de Laravel Shift), permite generar múltiples componentes de Laravel desde un único archivo YAML legible y expresivo. En este análisis profundo, exploraremos cómo Blueprint puede transformar tu flujo de desarrollo y por qué está ganando tracción en la comunidad Laravel.

2 min

389 palabras

Laravel además de utilizar múltiples paquetes de terceros tambien es posible utilizar partes como componentes. Todos los componentes están bajo el namespace “Illuminate”.

Si hay una clase realmente interesante y útil es Collection, que nos permite trabajar con arrays de datos de una forma sencilla y “programática”.

Para tener esta clase en nuestro proyecto solo necesitaremos el paquete illuminate/support que podremos instalar con:

composer require illuminate/support:5.2.x-dev

Para mostrar algunos ejemplos utilizaremos un pequeño array con estos datos: