Масштабне прискорення та патчі безпеки: вийшли Filament v4.12 та v5.7

Перекладено ШІ 0 Laravel News 08 серпня, 2026

Команда Filament презентувала масштабне оновлення, яке прискорює рендеринг компонентів до вражаючих 92%. Дізнайтеся, як оптимізація коду та нові функції безпеки допоможуть зробити ваші Laravel-проєкти значно продуктивнішими.

Кілька тижнів тому команда Filament звернулася до спільноти з проханням протестувати бета-версії v4 та v5, що мали суттєво підвищити продуктивність складних застосунків. Завдяки вашій допомозі ці оновлення вже доступні у стабільних релізах v4.12.6 та v5.7.6.

Окрім оптимізації, ми випустили оновлення безпеки, що усувають кілька CVE. Якщо ви використовуєте Filament v4 або v5, наполегливо рекомендуємо оновитися, щоб захистити свій застосунок.

А тепер перейдемо до найцікавішого — продуктивності.

# Масштабне підвищення швидкості

Головні герої цього релізу — пакети forms та tables, які отримали колосальний приріст швидкості роботи.

# Forms

Команда провела глибоку оптимізацію рендерингу полів. Результати внутрішніх тестів нас вразили:

Component Попередня версія Поточна версія Зміни
TextInput 0.559 ms 0.044 ms ~на 92% швидше
Select 0.634 ms 0.052 ms ~на 92% швидше
FileUpload 0.586 ms 0.083 ms ~на 86% швидше
Repeater (10 елементів, 2 поля) 28.077 ms 2.885 ms ~на 90% швидше
Checkbox 0.314 ms 0.033 ms ~на 90% швидше

Особливу увагу привертає Repeater: прискорення рендерингу на 90% дозволить працювати з великими формами без жодних затримок, навіть якщо кількість елементів постійно зростає.

Як нам це вдалося? Ми замінили значну частину циклів рендерингу Blade-компонентів на прямий виклик через PHP-теги (<?php). Це суттєво зменшило накладні витрати фреймворку для кожного поля та компонента схеми. Детальніше зміни можна вивчити у цьому PR.

Зауважте: наведені цифри — це результати внутрішніх бенчмарків. Реальна швидкість залежить від особливостей вашого проєкту.

# Tables

Ми вже покращували продуктивність таблиць раніше, але у версіях v4 та v5 вирішили піти ще далі. Оновлені таблиці стали ще «чуйнішими»:

Сценарій Попередня версія Поточна версія Зміни
50 рядків, 5 TextColumn, 3 Action на рядок 27.53 ms 13.11 ms ~на 52% швидше
50 рядків, 5 TextColumn, 1 ActionGroup (3 дії) на рядок 33.09 ms 16.73 ms ~на 49% швидше

На відміну від форм, де ми відмовилися від частини Blade-компонентів, тут оптимізація тонша. Ми додали легші шляхи рендерингу для типових дій, оптимізували роботу з атрибутами та впровадили кешування прав доступу (authorization) та умов видимості для кожного запису. Повний список змін — у цьому PR.

Найбільший профіт отримають застосунки з великою кількістю рядків, колонок та складними правилами доступу.

# Інші оновлення

Окрім продуктивності, ми підготували кілька корисних функцій для безпеки та зручності розробки.

# Продуктивність

# Обмеження для Query Builder

Нові методи maxRules() та maxNestingDepth() дозволяють лімітувати кількість умов у запитах. Це захищає сервер від надмірного навантаження на CPU та пам'ять, що раніше могло призводити до збоїв при обробці занадто складних фільтрів.

# Безпека

# Очищення CSS-кольорів

Додано хелпер Str::sanitizeCssColor(). Він запобігає ін'єкціям зайвих атрибутів при вставці даних користувача в HTML-атрибут style="".

# Захист від CSV-ін'єкцій

Тепер можна увімкнути автоматичне додавання префікса " до комірок, що починаються з символів =, -, + тощо. Це не дає Excel чи іншим табличним процесорам інтерпретувати текст як формулу. Функція є опціональною, щоб не спотворювати дані на кшталт номерів телефонів.

# Зручність (Quality of Life)

# Групування меню користувача та тенента

Тепер пункти меню можна розділяти на групи для кращої читабельності. Крім того, Filament тепер запам'ятовує (memoize) ці дії в межах одного запиту, що трохи додає швидкості.

# Скасування батьківських дій при закритті модального вікна

Метод modalDismissesParentActions() дозволяє при закритті вкладеного модального вікна автоматично скасовувати весь ланцюжок дій. Це ідеально підходить для багатокрокових процесів, де потрібно перервати весь флоу одним кліком.

# Empty states для віджетів графіків

Тепер для Chart Widgets можна налаштовувати кастомні стани для порожніх даних. Це робить дашборди професійнішими, чітко розділяючи помилку та просто відсутність інформації.

# Дрібні, але корисні покращення

  • Click-through модальні вікна — тепер можна взаємодіяти з контентом під модальним вікном або Slide-over.
  • Стабільні ключі навігації — прив’язка до батьківських елементів тепер можлива через стабільні ключі, а не лише за назвою, що спрощує переклад та ренеймінг.
  • Керування розділенням пошукових термінів — налаштовується окремо для кожної колонки.
  • Динамічне приховування колонок при експорті — через closure під час виконання.
  • Налаштування XLSX writer — можливість конфігурувати файл (наприклад, додавати заголовки) одразу після відкриття.
  • Динамічна ширина панелі та сайдбару — можливість змінювати maxContentWidth() та ширину Sidebar через closure.
  • Гнучке керування темною темою — налаштування доступності та перемикача теми в runtime.

# Підсумок

Ми в захваті від цього релізу! Це мінорне оновлення, яке не ламає зворотну сумісність, але приносить величезний приріст продуктивності та купу корисних фіч.

Дякуємо спільноті за допомогу в тестуванні. Разом ми робимо Filament кращим!

Популярні

Інше, що варто прочитати

19 Оновлено 26 червня, 2026

Intervention Image: потужний інструмент для роботи з зображеннями у Laravel

Досліджуйте потужний пакет Intervention Image для PHP, який виводить редагування зображень на новий рівень з оновленою версією 3. Чи готові ви дізнатися, які нові можливості та функції чекають на вас у цьому інструменті

104 Оновлено 26 червня, 2026

Все, що потрібно знати про Laravel 13

Laravel 13 вийде в березні 2026 року й вимагатиме мінімум PHP 8.3. Хочете дізнатися, як PHP‑атрибути для моделей, нові налаштування черг і метод Cache::touch() вплинуть на вашу розробку?

51 Оновлено 26 червня, 2026

Nuxt 3 + Laravel Sanctum: Просте та надійне рішення для автентифікації вашого SPA та API

У сучасній веб-розробці аутентифікація є ключовою для захисту додатків і даних користувачів. Дізнайтеся, як модуль nuxt-sanctum-authentication спростить інтеграцію між Nuxt 3 та Laravel Sanctum, забезпечуючи надійний і зручний спосіб реалізації аутентифікації для вашого проєкту