Увійти Реєстрація
Блог Серії
Кар'єра
Вакансії Компанії
Навчання
Документація Співбесіди Тестування Відео
Екосистема
Пакети Ресурси Проєкти Інструменти Події
Інше
Про нас Реклама

Блог

Статті, новини, туторіали та переклади від учасників спільноти

No results.
Difflock
Новини 22 вересня 2026

Difflock: Лінтинг Laravel-міграцій та перевірка схеми бази даних

Difflock - Laravel-пакет для аналізу міграцій перед їх застосуванням. Він перевіряє міграції на деструктивні операції, зміни колонок, індекси та зовнішні ключі, порівнює схеми баз даних та блокує ризиковані зміни у CI/CD.

27
Що ми знаємо про Laravel 14
Новини 22 вересня 2026

Що ми знаємо про Laravel 14

Laravel 14 - наступний мажорний реліз фреймворку, очікуваний у першому кварталі 2027 року. Він вимагатиме мінімум PHP 8.4 та отримуватиме виправлення помилок до третього кварталу 2028 року, а оновлення безпеки - до першого кварталу 2029 року.

15
Tips 21 вересня 2026

zip() і combine() - зшивання колекцій

Маєте два окремі масиви - заголовки й значення? Або назви колонок і рядок CSV?

Зшивати їх циклом по індексу не потрібно.

Різниця:

  • zip() - склеює елементи попарно, повертає колекцію пар
  • combine() - бере першу колекцію як ключі, другу як значення

Де корисно:

  • Парсинг CSV: рядок заголовків + рядки даних
  • Зіставлення результатів двох запитів
  • Побудова асоціативних структур на льоту

Порада: zip() не обрізає до найкоротшої колекції - відсутні значення стають null.

// combine() - ключі + значення
$headers = collect(['name', 'email', 'age']);
$row = ['John', 'john@ex.com', 30];

$user = $headers->combine($row);
// ['name' => 'John', 'email' => 'john@ex.com', 'age' => 30]

// zip() - попарне склеювання
$names = collect(['John', 'Jane']);
$ages = [30, 25];

$pairs = $names->zip($ages);
// [['John', 30], ['Jane', 25]]

// zip() з нерівною довжиною - null у хвості
collect([1, 2, 3])->zip([10, 20]);
// [[1, 10], [2, 20], [3, null]]

// Кілька колекцій одночасно
$names->zip($ages, $emails);
// [['John', 30, 'john@ex.com'], ...]
// Парсинг CSV одним ланцюжком
$lines = collect(file('users.csv'));
$headers = str_getcsv($lines->shift());

$users = $lines->map(fn ($line) =>
  collect($headers)->combine(str_getcsv($line))
);
// $users[0]['email'] - асоціативний доступ

// Зіставлення двох запитів у мапу
$map = Order::pluck('id')
  ->combine(Order::pluck('total'));
// [1 => 250.00, 2 => 130.50]
Fresh Package
Новини 19 вересня 2026

Fresh Package: новий скелет для розробки Laravel-пакетів з Testbench, CI та інтеграцією Boost

Fresh Package від Mazen Touati - це сучасний скелет для створення Laravel-пакетів, який включає тестове середовище, статичний аналіз, CI/CD, workbench-додаток та шаблони навичок для AI-агентів. Підтримує як backend-only, так і full-stack пакети.

16
Jev: модель, яка повертає рішення замість тексту - і вже є в Laravel AI SDK
Новини 18 вересня 2026

Jev: модель, яка повертає рішення замість тексту - і вже є в Laravel AI SDK

TypeSafe AI випустила Jev - модель, яка не генерує текст, а повертає типізовані рішення з каліброваними ймовірностями за 70-500 мс. Через два дні підтримка приїхала в гілку 1.x пакета laravel/ai у вигляді API Classification з питаннями Boolean, Choice і Score.

Tips 18 вересня 2026

skip() і take() - пагінація без БД

Потрібна пагінація на клієнтській стороні або на вже завантажених даних?

skip() і take() працюють як OFFSET і LIMIT.

Використання:

  • In-memory пагінація
  • Розбиття результатів
  • API-слайси

Комбінація:

Використовуються разом.

Порада: forPage() - короткий шлях для skip/take.

$items = collect(range(1, 100));

// Пропустити 20, взяти 10
$page = $items->skip(20)->take(10);
// [21, 22, ..., 30]

// Пагінація вручну
$perPage = 10;
$page = 3;

$results = $items->skip(($page - 1) * $perPage)
  ->take($perPage);

// Коротко: forPage()
$results = $items->forPage(3, 10);

// Умовні варіанти замість числа
$items->skipUntil(fn($i) => $i > 50);
$items->skipWhile(fn($i) => $i < 20);
$items->takeUntil(fn($i) => $i > 50);
$items->takeWhile(fn($i) => $i < 20);
// API-пагінація на закешованих даних
public function index(Request $request)
{
  $all = Cache::remember(
    'products', 3600, fn () => Product::all()
  );

  $page = (int) $request->query('page', 1);
  $perPage = (int) $request->query('per_page', 15);

  return response()->json([
    'data' => $all->forPage($page, $perPage)->values(),
    'current_page' => $page,
    'per_page' => $perPage,
    'total' => $all->count(),
  ]);
}
Laravel Scalpel
Новини 18 вересня 2026

Laravel Scalpel: Сканер для виявлення слідів вторгнень у файлову систему

Laravel Scalpel - новий інструмент від Harry Agustiana для виявлення слідів компрометації додатка. Пакет сканує файлову систему на наявність підозрілих PHP-файлів, обфускованого коду, змінених серверних директив та відхилень від еталонного стану.

35
Inertia DevTools
Новини 18 вересня 2026

Inertia DevTools тепер доступні для Firefox

Офіційне розширення Inertia DevTools з'явилося у Firefox Add-ons store з повною функціональною паритетністю з Chrome-версією. Розробники отримують панель з таймлайном візитів, деревом пропсів, заголовками запитів та відповідей, інформацією про роути і контролери.

11
Super Stack
Новини 17 вересня 2026

Super Stack: Laravel-стартер із Filament, NativePHP та MCP-сервером

Команда NativePHP випустила Super Stack - відкритий Laravel-стартер, який об'єднує веб-додаток, Filament-панель адміністратора, нативний мобільний застосунок та MCP-сервер для AI-агентів в одному репозиторії.

38

Статті, новини та посібники про Laravel і PHP українською: релізи фреймворку, патерни, інструменти та досвід команд. Нижче - розбивка за категоріями й темами, якщо хочете звузити пошук.

Зараз опубліковано 288 матеріалів від 3 авторів. Останній матеріал - 06 жовтня 2026.