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

Блог

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

No results.
Quick Blade
Новини 11 вересня 2026

Quick Blade: попередній перегляд Blade-шаблонів у Finder на macOS

Tim Gavin випустив Quick Blade - розширення Quick Look для macOS, яке дозволяє переглядати відрендерені Blade-шаблони прямо у Finder натисканням пробілу. Інструмент працює без сервера розробки, бази даних чи мережевого з'єднання.

10
Bifrost
Новини 11 вересня 2026

Bifrost святкує перший рік роботи з AI-діагностикою та новими робочими процесами

Сервіс Bifrost від команди NativePHP відзначив річницю та 10 000 успішних збірок. Оновлення включають MCP-сервер для AI-агентів, автоматизовані workflow, керовані облікові дані для підпису та AI-діагностику помилок збірки.

12
Патерн Null Object
Посібники 10 вересня 2026
Патерни проєктування

Null Object - поведінка за замовчуванням

Замінює null безпечним об'єктом із тим самим інтерфейсом і "порожньою" поведінкою. Прибирає перевірки на null - і де він може приховати справжню проблему.

17
Laravel 13.31
Новини 10 вересня 2026

Laravel 13.31: метод totalSize() для черг, подія JobInterrupted та покращення BelongsToMany

Команда Laravel випустила версію 13.31.0 з методом totalSize() для з'єднань черг, новою подією JobInterrupted для переривання завдань, підтримкою chaperone для pivot-моделей BelongsToMany та низкою інших покращень для роботи з Vite, Mail та Notification.

11
Tips 09 вересня 2026

whenEmpty() та whenNotEmpty() - умовні операції

Потрібно виконувати код лише тоді, коли колекція порожня або непорожня? if/else роблять код об'ємним.

whenEmpty() та whenNotEmpty() роблять це чисто.

Приклади використання:

  • Показати контент за замовчуванням
  • Логувати попередження
  • Запускати fallback-логіку
  • Присвоювати значення за замовчуванням

Перевага:

Методи ланцюжаться та зберігають fluent-синтаксис.

Порада: значення, повернуте з callback, стає новим значенням колекції.

$users = User::where('active', true)->get();

// ПОГАНО: розривається ланцюжок
if ($users->isEmpty()) {
  return redirect()->back()->with('error', 'No active users');
}

// ДОБРЕ: fluent-синтаксис
$users->whenEmpty(function () {
  return redirect()->back()->with('error', 'No active users');
});

// Додати елементи за замовчуванням, якщо порожньо
$products = Product::where('featured', true)->get();

$products = $products->whenEmpty(function ($collection) {
  return Product::latest()->limit(5)->get();
});

// Логування, якщо непорожня
$errors->whenNotEmpty(function ($collection) {
  Log::error('Validation errors found', $collection->toArray());
});

// З "else"
$users->whenEmpty(
  fn($collection) => ['name' => 'Guest'],
  fn($collection) => $collection->first()
);
// API-відповідь із fallback
return response()->json([
  'users' => $users->whenEmpty(fn() => collect([
    ['name' => 'No users found', 'id' => null]
  ]))
]);

// Ланцюжок операцій
$results = collect($searchResults)
  ->whenEmpty(fn() => $this->getDefaultResults())
  ->take(10)
  ->map(fn($item) => $this->format($item));

// Прогрів кешу
$cached = Cache::get('popular_posts');

collect($cached)->whenEmpty(function () {
  $posts = Post::popular()->get();
  Cache::put('popular_posts', $posts, 3600);
  return $posts;
});

// Надсилання email-дайджесту
$notifications->whenNotEmpty(function ($items) {
  Mail::to($user)->send(new NotificationDigest($items));
});
Fuzz для Pest
Новини 09 вересня 2026

Знайдіть несподівані тестові дані за допомогою Fuzz для Pest

Пакет Fuzz від Джона Пурвіса дозволяє проводити фаз-тестування безпосередньо в Pest 5, генеруючи різноманітні вхідні дані для виявлення помилок, які важко передбачити вручну. Інструмент використовує coverage-guided підхід для ефективного дослідження коду.

10
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'
);

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

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