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

Статті за тегом «Laravel»

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

No results.
Laravel Rulebook
Новини 08 вересня 2026

Laravel Rulebook: Бізнес-Правила, Що Змінюються з Часом

Laravel Rulebook - новий пакет для керування бізнес-правилами, які змінюються з часом. Він дозволяє зберігати історію політик у коді, точно визначати, яке правило діяло на конкретну дату, та пояснювати рішення, прийняті місяці тому.

28
Tips 07 вересня 2026

firstWhere() - Пошук елемента за атрибутом

Потрібно знайти перший елемент, що відповідає умові?

firstWhere() виглядає чистіше, ніж filter()->first().

Переваги:

  • Один метод замість двох
  • Автоматична обробка null
  • Підтримує оператори

Оператори:

Такі ж, як у where(): =, !=, >, <, >=, <=

Порада: використовуйте другий параметр для значення за замовчуванням, якщо елемент не знайдено.

$users = collect([
  ['id' => 1, 'name' => 'John', 'age' => 25],
  ['id' => 2, 'name' => 'Jane', 'age' => 30],
  ['id' => 3, 'name' => 'Bob', 'age' => 35],
]);

// ПОГАНО: два методи
$user = $users->filter(fn($u) => $u['age'] > 30)->first();

// ДОБРЕ: один метод
$user = $users->firstWhere('age', '>', 30);
// ['id' => 3, 'name' => 'Bob', 'age' => 35]

// Точна відповідність (оператор за замовчуванням - =)
$user = $users->firstWhere('name', 'Jane');

// Із значенням за замовчуванням
$guest = ['name' => 'Guest'];
$user = $users->firstWhere('age', '>', 100) ?? $guest;

// Eloquent-колекції
$featured = Post::all()->firstWhere('featured', true);

// Кілька умов - first із callback
$user = $users->first(
  fn($u) => $u['age'] > 30 && $u['name'] !== 'Bob'
);
Tips 04 вересня 2026

unique() - інтелектуальне видалення дублікатів

Є дублікати email? Перевіряти вручну необов'язково.

unique() видаляє дублікати.

Як працює:

Залишає перше значення, інші прибирає.

Розширення:

  • Унікальність за ключем
  • Унікальність за callback
  • Строге порівняння

Порада: uniqueStrict() враховує тип (1 !== "1").

$numbers = collect([1, 2, 2, 3, 3, 4]);
$unique = $numbers->unique();
// [1, 2, 3, 4]

// За ключем
$users = collect([
  ['id' => 1, 'email' => 'john@example.com'],
  ['id' => 2, 'email' => 'jane@example.com'],
  ['id' => 3, 'email' => 'john@example.com'],
]);

$uniqueByEmail = $users->unique('email');

// За callback
$products = collect([
  ['name' => 'iPhone', 'price' => 999],
  ['name' => 'Samsung', 'price' => 999],
  ['name' => 'iPad', 'price' => 799],
]);

$uniqueByPrice = $products->unique(fn($i) => $i['price']);

// Строге порівняння
collect([1, '1', 2, '2'])->unique();       // [1, 2]
collect([1, '1', 2, '2'])->uniqueStrict(); // [1, '1', 2, '2']

// Скинути ключі
$unique->values();
Tips 02 вересня 2026

lazy() - колекції без перевантаження пам'яті

Якщо обробляється 50 000 елементів і застосовується 10 методів, звичайна колекція створить 10 копій у пам'яті.

Lazy колекції обробляють один елемент за раз.

Як працює:

Елемент проходить через усі методи і лише потім переходить до наступного.

Коли варто використовувати:

  • Великі файли
  • Стрімінг
  • Генератори
  • Обмежена пам'ять

Порада: перетворити назад у звичайну колекцію - all().

// Погано: багато копій у пам'яті
$result = collect($hugeArray)
  ->filter(...)
  ->map(...)
  ->sortBy(...)
  ->take(100);

// Добре: один елемент за раз
$result = collect($hugeArray)
  ->lazy()
  ->filter(...)
  ->map(...)
  ->sortBy(...)
  ->take(100)
  ->all();

// Великий CSV
$users = LazyCollection::make(function () {
  $h = fopen('users.csv', 'r');
  while ($line = fgets($h)) {
    yield $line;
  }
  fclose($h);
})->map(fn($l) => str_getcsv($l));

// cursor() - вже lazy
User::cursor();
MKSine
Новини 02 вересня 2026

MKSine: CMS на базі Filament із плагінами, темами та блоками

MKSine - це повноцінна CMS для Laravel-проєктів на основі Filament, що включає сторінки, пости, конструктор блоків, систему плагінів, теми, меню та медіабібліотеку. Розробник Міран Салехі створив рішення, яке дозволяє редакторам керувати контентом без написання коду.

Tips 31 серпня 2026

tap() - дебаг без зміни ланцюжка

Потрібно подивитися стан колекції в середині ланцюга?

tap() дозволяє "підглянути" в колекцію, не змінюючи її.

Як працює:

Callback отримує колекцію, але повернуте значення ігнорується.

Сценарії:

  • Дебаг
  • Логування
  • Побічні ефекти

Різниця з pipe():

  • pipe() використовує значення, яке повернув callback
  • tap() ігнорує і продовжує з оригіналом
$result = $users
  ->where('active', true)
  ->tap(fn($c) => logger("Active: {$c->count()}"))
  ->where('role', 'admin')
  ->tap(fn($c) => logger("Admins: {$c->count()}"))
  ->get();

// Порівняння
$collection->pipe(fn($c) => $c->count()); // повертає число
$collection->tap(fn($c) => $c->count()); // повертає колекцію

Матеріали за темою «Laravel»: усе, що ми писали про це українською. Нижче - суміжні теми, якщо шукаєте ширше.

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