O FilamentPHP, um framework popular para acelerar o desenvolvimento de painéis administrativos e aplicações full-stack em Laravel, está se preparando para o lançamento de sua versão 4 (V4), prometendo ser a maior e mais rica em recursos até hoje. Com base em anúncios oficiais, discussões da comunidade e análises de especialistas, a V4 trará mudanças significativas na arquitetura, performance, segurança e experiência do desenvolvedor.
Uma das mudanças mais impactantes é a introdução de um novo pacote interno chamado "Schema". Este pacote servirá como base unificada para formulários, tabelas, infolists e widgets. Em versões anteriores, componentes similares eram implementados separadamente, mas a V4 consolida esses elementos em classes únicas, promovendo maior consistência, manutenibilidade e permitindo que os desenvolvedores misturem e combinem componentes (como formulários, infolists, tabelas e widgets) de forma mais livre na mesma página, algo que antes exigia soluções alternativas.
Essa unificação se estende aos layouts de página. A V4 permitirá personalizar a estrutura das páginas diretamente via PHP, utilizando um método content na classe da página, similar à definição de layouts de formulários (com seções, grids, abas, etc.), eliminando a necessidade de publicar e modificar arquivos Blade. Isso mantém a customização no código PHP e facilita a manutenção.
As Actions também foram unificadas. Em vez de classes de Action separadas para formulários, tabelas e widgets (uma fonte comum de confusão na V3), a V4 introduz uma classe base de Action única, que funciona em todos os contextos. Isso simplifica a importação e permite criar Actions reutilizáveis entre diferentes pacotes do Filament.
A organização dos arquivos de recursos foi repensada. Na V4, cada recurso terá seu próprio diretório, agrupando a classe principal do recurso (ex: UserResource.php) com suas páginas e schemas relacionados (ex: Pages/EditUser.php, Schemas/UserForm.php). Essa co-localização torna a base de código mais intuitiva e portátil.
O comando make:filament-resource também foi aprimorado. Por padrão, ele agora extrai as definições de formulário e tabela para classes separadas dentro do diretório do recurso, incentivando a reutilização de código. Embora seja a abordagem recomendada, essa separação é opcional e pode ser desabilitada, garantindo a retrocompatibilidade para quem preferir o estilo inline da V3.
Atendendo a um pedido antigo da comunidade, o Filament V4 trará suporte nativo para Recursos Aninhados (Nested Resources). Isso permitirá definir e gerenciar recursos dentro do contexto de um recurso pai (por exemplo, gerenciar tarefas dentro de um projeto específico, com URLs como /projects/{project}/tasks), simplificando a criação de interfaces mestre-detalhe.
A performance foi um foco central no desenvolvimento da V4. As tabelas, em particular, receberam uma otimização agressiva. A renderização foi refatorada para usar significativamente menos componentes Blade, com a lógica PHP gerando HTML bruto em muitos casos. Segundo medições da equipe, isso resultou em tabelas renderizando aproximadamente duas vezes mais rápido, um ganho substancial para aplicações com grandes volumes de dados.
Outro avanço importante é o suporte ao Livewire partial rendering. Isso significa que, ao interagir com a página (ex: atualizando um campo de formulário que depende de outro), apenas as partes afetadas da interface serão re-renderizadas, em vez da página inteira. Isso torna as interações mais rápidas e reduz a quantidade de dados trafegados, especialmente em páginas complexas ou ao usar filtros e paginação em tabelas.
Complementarmente, a estratégia de CSS foi revista, movendo-se para uma abordagem mais semântica e reduzindo a quantidade de classes utilitárias do Tailwind CSS no HTML final, o que também contribui para um carregamento mais eficiente.
O Filament V4 introduz a capacidade de usar dados estáticos em tabelas. Agora, será possível popular tabelas com dados provenientes de arrays, APIs ou caches, não apenas de Models do Eloquent, através de um novo método records() no objeto Table. Isso oferece maior flexibilidade para lidar com diversas fontes de dados.
A segurança também recebeu atenção especial com a inclusão de Autenticação Multi-Fator (MFA) nativa no pacote Panel. Os desenvolvedores poderão habilitar facilmente a MFA, permitindo que os usuários configurem uma camada adicional de segurança usando aplicativos como Google Authenticator ou códigos enviados por e-mail. O Filament cuidará de toda a interface e fluxo de registro e login com MFA.
Outras melhorias de segurança incluem a verificação de mudança de e-mail, adicionando uma etapa de confirmação para proteger as contas dos usuários.
O lançamento da versão Beta do Filament V4 está previsto para 10 de junho de 2025, durante o evento Laravel Live UK. A versão estável é esperada para o verão de 2025 (hemisfério norte).
Em resumo, o FilamentPHP V4 se apresenta como uma atualização robusta, focada em refinar a arquitetura, melhorar drasticamente a performance, adicionar funcionalidades muito solicitadas pela comunidade e fortalecer a segurança, consolidando sua posição como uma ferramenta poderosa e eficiente para o desenvolvimento Laravel.
- FilamentPHP Official Blog: All About the Filament v4 Beta Release - https://filamentphp.com/content/alexandersix-all-about-the-filament-v4-beta-release
- Flanger.dev Blog: FilamentPHP Version 4 — What to Expect - https://flanger.dev/blog/post/filamentphp-version-4-what-to-expect
- Filamentapps.dev Blog: Filament v4 is Coming: Here are Somethings You Need to Know - https://filamentapps.dev/blog/filament-v4-is-coming-heres-somethings-you-need-to-know
- GitHub Milestone (v4.0.0-beta1): https://github.com/filamentphp/filament/milestone/7