Composite - дерево об'єктів
Патерн Composite дозволяє працювати з деревом об'єктів так само, як з одним об'єктом. І окремий «лист», і «гілка» (група) реалізують той самий інтерфейс, тож клієнт викликає в них однакові методи.
Почніть вводити, щоб шукати по статтях, вакансіях, компаніях, проєктах, ресурсах, пакетах, подіях і користувачах.
Статті, новини, туторіали та переклади від учасників спільноти
Патерн Composite дозволяє працювати з деревом об'єктів так само, як з одним об'єктом. І окремий «лист», і «гілка» (група) реалізують той самий інтерфейс, тож клієнт викликає в них однакові методи.
Команда Backpack for Laravel опублікувала повідомлення про безпеку: у телеметрії пакета Backpack\CRUD виявлено вразливість, що дозволяла віддалене виконання коду (RCE) без автентифікації. Дослідник безпеки Vishal Shukla (@therawdev) відповідально повідомив про проблему 16 травня 2026 року, і команда розробників випустила виправлення менш ніж за 24 години.
Патерн Bridge розділяє абстракцію та її реалізацію на дві окремі ієрархії, щоб змінювати їх незалежно. Це рятує, коли є кілька незалежних вимірів варіативності і за наївного підходу класи множаться комбінаторно.
Vigilance - це панель моніторингу для Laravel, яка відстежує черги, artisan-команди та заплановані завдання незалежно від драйвера (Redis, SQS, database). Записує кожен запуск з параметрами, кодами завершення та трасами винятків.
Lattice - це server-driven UI фреймворк для Laravel, що дозволяє описувати сторінки, форми, таблиці, дії та меню в PHP, а рендерити їх як React-компоненти через Inertia. Сервер стає єдиним джерелом правди для інтерфейсу, а клієнт лише відповідає за його відображення.
CultRepo представила тизер документального фільму про PHP - мову програмування, на якій побудовано Laravel та величезну частину інтернету. Фільм за підтримки JetBrains розповість історію від спагетті-коду до сучасних фреймворків, а в ньому візьмуть участь творці Laravel, Composer та Symfony.
Патерн Adapter потрібен, коли два компоненти мають несумісні інтерфейси. Він дозволяє підключити сторонню бібліотеку без переписування коду.
Subscriptionify - Laravel-пакет для моделювання планів підписки та функцій, які вони відкривають. На відміну від Cashier, залишається незалежним від платіжних шлюзів, відстежуючи плани, квоти та використання у вашій базі даних.
При створенні 1,000 записів в циклі? Кожен create() звертається до бази окремо.
insert() надсилає всі записи одним запитом. В 100 разів швидше.
Компроміс:
create() запускає події, заповнює timestamps, повертає модельinsert() пропускає все, просто сирий SQL insertКоли використовувати insert():
Порада: Використовувати upsert() для масових операцій insert-or-update в Laravel 8+.
// ПОГАНО: 1000 окремих запитів
foreach ($records as $record) {
User::create($record); // Повільно
}
// ДОБРЕ: Один запит для всіх
User::insert($records);
// З timestamps
$now = now();
$records = collect($records)->map(function ($record) use ($now) {
return array_merge($record, [
'created_at' => $now,
'updated_at' => $now,
]);
})->toArray();
User::insert($records);
// Upsert - вставити або оновити
User::upsert(
[
['email' => 'john@example.com', 'name' => 'John'],
['email' => 'jane@example.com', 'name' => 'Jane'],
],
['email'], // Унікальна колонка
['name'] // Оновити ці колонки
);