Випущено Backpack v7 — дізнайтеся про нові можливості

Перекладено ШІ
Оригінал: Laravel News
Оновлено: 05 грудня, 2025
🚀 Вперше за 2,5 роки команда Backpack представила нову версію v7, яка приносить неймовірні можливості для розробки адміністративних панелей на Laravel. Чи готові ви дізнатися, як нові компоненти даних і покращений досвід розробника можуть змінити ваш підхід до створення складних проектів? Читайте далі, щоб дізнатися більше

Після 2,5 років вдосконалення версії 6 команда Backpack представила нову основну версію. Якщо ви не знайомі з Backpack, це фреймворк для створення панелей адміністратора у Laravel, який дозволяє швидко розробляти власні адмін-панелі. І ми зробили його ще легшим у використанні

Коротко: Backpack v7 пропонує нові Data Components (використовуйте таблиці, форми, сітки де завгодно), Chips (компактна інформація), Skins (легкий брендинг), Lifecycle Hooks (чистіший код), SaveAction Classes (краща організація) і багаторазові фільтри. Оновлення зазвичай триває 5-20 хвилин

Давайте розглянемо нововведення

# Data Components - Використовуйте їх де завгодно

Це головна новина. Ми відокремили наші основні дії (таблиці, форми, сторінки) в незалежні Blade компоненти. Тепер ви можете використовувати їх будь-де - не лише в CrudControllers

Хочете показати таблицю на дашборді? Легко:

<x-bp-datatable controller="\App\Http\Controllers\Admin\InvoiceCrudController" />

Потрібна форма на кастомній сторінці або модальному вікні? Це зроблено:

<x-bp-dataform controller="\App\Http\Controllers\Admin\InvoiceCrudController" />

Хочете відобразити деталі запису? Ось ваш код:

<x-bp-datagrid
    controller="\App\Http\Controllers\Admin\InvoiceCrudController"
    :entry="\App\Models\Invoice::find(1)"
/>

Ці компоненти автоматично зберігають усі налаштування з вашого наявного CrudController. Якщо ви вже налаштували свої стовпці, поля та кнопки - вони просто працюють. Якщо потрібно щось змінити, ви можете передати функцію :setup:

<x-bp-datatable
    controller="\App\Http\Controllers\Admin\InvoiceCrudController"
    :setup="function($crud, $parent) {
        $crud->removeColumn('notes');
        $crud->addClause('where', 'status', 'paid');
    }"
/>

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

# Покращений досвід для розробників

Ми впровадили кілька покращень, які спростять ваш код і зроблять його легшим для обслуговування

# Lifecycle Hooks

Раніше, якщо ви хотіли додати кастомний код перед або після налаштування маршрутів чи дефолтних значень операцій, вам доводилося перевизначати цілі методи. Тепер це не потрібно. Ви можете використовувати Lifecycle Hooks на конкретних етапах:

use Backpack\CRUD\app\Library\CrudPanel\Hooks\Facades\LifecycleHook;
 
LifecycleHook::hookInto('create:before_setup', function($crud) {
    // виконується перед налаштуванням операції створення
});

Це особливо корисно при створенні кастомних операцій або модулів. Ви можете додати свою логіку, не чіпаючи основний код операції

# SaveAction Classes

Save actions (кнопки "Зберегти та назад", "Зберегти та редагувати") тепер вимагають менше коду у вашому CrudController. Тепер їх можна об’єднати в класи:

// Раніше: 10+ рядків конфігурації
// Тепер: один рядок
CRUD::addSaveAction(SaveAndApprove::class);

Створити кастомний SaveAction просто - розширте AbstractSaveAction і перевизначте що потрібно:

class SaveAndApprove extends AbstractSaveAction
{
    public function getName(): string { return 'save_and_approve'; }
    public function getButtonText(): string { return 'Зберегти та затвердити'; }
 
    public function getRedirectUrl(CrudPanel $crud, Request $request, $itemId = null): ?string
    {
        return route('admin.invoices.approve', $itemId);
    }
}

Ці класи багаторазові, тестовані та сприяють чистоті ваших контролерів

# Багаторазові фільтри

Фільтри в Backpack/PRO більше не прив’язані до таблиць. Тепер вони запускають загальні JavaScript події, які ви можете використовувати будь-де:

// Фільтри тепер викликають події 'backpack:filter:changed'
// Використовуйте їх у кастомних сторінках, дашбордах або з Livewire

Це означає, що ви можете використовувати один і той же інтерфейс фільтрації на власних дашбордах, звітах чи будь-яких інших сторінках, де потрібно фільтрувати дані. Вони також працюють у Custom Views для операції List

# Chips - Компактне відображення інформації

Ми представили новий концепт під назвою "Chips" - спосіб відображення інформації про записи в компактному форматі. Уявіть їх як міні-картки, що можуть відображати ключові атрибути записи в обмеженому просторі

Вони особливо корисні у таблицях, коли ви маєте забагато стовпців. Замість горизонтального прокручування ви можете зібрати інформацію з кількох стовпців в один chip:

CRUD::addColumn([
    'name' => 'info',
    'type' => 'view',
    'view' => 'crud::chips.invoice',
]);

Ви можете створити кастомний chip за допомогою php artisan backpack:chip invoice і налаштувати, яку інформацію він відображатиме

# Легший брендинг

Ми впровадили Skins - прості CSS-файли, які повністю змінюють вигляд вашої адмін-панелі. Тема Tabler тепер включає сучасний "скляний" стиль з коробки, і ми працюємо над новими

А головне, тепер дуже просто налаштувати адмін-панель під кольори вашого бренду за допомогою CSS-змінних. Більше не потрібно шукати в конфігураційних файлах або створювати власні теми

# Оновлення

Ми знаємо, що ніхто не любить оновлення. Тому ми зробили це якомога простішим:

Вимоги:

Краща новина: якщо ви придбали Backpack PRO та маєте доступ до оновлень, ви автоматично отримали доступ до v7 - нічого додатково купувати не потрібно

# Що далі?

Ми на цьому не зупиняємося. У випусках v7.x ми працюємо над:

Деякі з них вже в бета-версії, інші з’являться незабаром

# Чи варто це спробувати?

Якщо ви новачок у Backpack, v7 - найкраща версія для початку. Data Components самі по собі заощадять вам години при створенні чогось складнішого за прості CRUD

Якщо ви вже пробували Backpack і вважали його обмеженим, подивіться ще раз. Гнучкість, яку ми додали у v7, вирішила більшість скарг на теми "Я не можу зробити X"

Якщо ви вже використовуєте Backpack, оновлення швидке, а нові функції вартують зусиль. Особливо, якщо ви будуєте складні адмін-панелі з дашбордами і кастомними сторінками


Велика подяка нашій команді - Pedro Martins, Jorge Castro та Karan Datwani - за неймовірну роботу над цим випуском. Понад 1000 комітів за 8+ місяців, при цьому підтримуючи v6

Дякуємо також усім, хто коли-небудь купував Backpack або розповідав про нього друзям. Ваша підтримка робить все це можливим

Готові спробувати?

Дякуємо!