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

Блог

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

No results.
Новини 27 жовтня 2026

Критичні RCE-вразливості в PHP: що сталося і що зробити зараз

PHP 8.5.12, 8.4.27, 8.3.36 і 8.2.35 закривають CVE-2026-109618 і CVE-2026-109619 - дві вразливості з віддаленим виконанням коду без автентифікації, CVSS v4.0 9.2. Під загрозою PHP-FPM, mod_php, php-cgi, FrankenPHP і LiteSpeed. Розбираємо, як оновитися, що дають тимчасові заходи і що перевірити в Laravel-проєкті.

30
Новини 27 жовтня 2026

Laravel 13.36-13.38: репліки бази даних без застарілих даних

Три випуски Laravel за тиждень принесли штатні інструменти для роботи з репліками: middleware PreventStaleDatabaseReads, DB::usingWritePdo() і скидання sticky-з'єднань між джобами через Worker::$flushStickyConnections. А ще DB::olap() для PlanetScale, Rule::-білдери для всіх правил валідації та кілька корисних виправлень у чергах.

7
Tips 26 жовтня 2026

`distinct` - без дублікатів у масивах

Відправляєте масив значень і треба гарантувати унікальність?

distinct перевіряє, що дублікатів немає.

Коли корисно:

  • Списки email’ів
  • Теги
  • Multi-select
  • Bulk-операції

Опції:

  • distinct — чутливо до регістру
  • distinct:ignore_case — без урахування регістру
  • distinct:strict — строгі типи

Порада: комбінуйте з правилами array.

public function rules()
{
  return [
    'emails' => 'required|array',
    'emails.*' => 'email|distinct',

    'tags' => 'required|array',
    'tags.*' => 'string|distinct:ignore_case',

    'ids' => 'required|array',
    'ids.*' => 'integer|distinct:strict',
  ];
}
Tips 23 жовтня 2026

`required_if` - умовно обов’язкові поля

Поле має бути обов’язковим лише за певних умов?

required_if робить це чисто.

Синтаксис:

required_if:another_field,value

Коли корисно:

  • Поля оплати залежно від методу
  • Адреса залежно від перемикача
  • Динамічні секції форми

Кілька значень:

через кому.

Порада: для зворотної логіки використовуйте required_unless.

public function rules()
{
  return [
    'payment_method' => 'required|in:card,bank,paypal',
    'card_number' => 'required_if:payment_method,card',
    'bank_account' => 'required_if:payment_method,bank',
    'paypal_email' => 'required_if:payment_method,paypal',

    'account_type' => 'required|in:personal,business',
    'company_name' => 'required_if:account_type,business',
  ];
}
Tips 21 жовтня 2026

`dimensions` - точна валідація розмірів зображення

Користувачі завантажують величезні фото — верстка ламається через неправильні розміри.

dimensions валідує ширину, висоту та співвідношення сторін.

Обмеження:

  • min_width, max_width
  • min_height, max_height
  • width, height (точні)
  • ratio (width/height)

Коли корисно:

  • Аватар (тільки квадрат)
  • Банер (задане співвідношення)
  • Генерація прев’ю
  • Вимоги адаптивного дизайну

Порада: комбінуйте з image, mimes та max для повної перевірки.

public function rules()
{
  return [
    'avatar' => [
      'required', 'image',
      'dimensions:width=200,height=200',
    ],
    'banner' => [
      'required', 'image',
      'dimensions:min_width=1200,min_height=300',
    ],
    'thumbnail' => [
      'required', 'image', 'dimensions:ratio=16/9',
    ],
  ];
}
Tips 19 жовтня 2026

Валідація Enum - типобезпечні значення у формах

Статус може бути pending, active, inactive. Валідувати рядками?

PHP 8.1 Enums + Laravel validation = типобезпека.

Rule::enum() валідує значення по Enum case’ах автоматично.

Переваги:

  • Змінили Enum — валідація підлаштувалась
  • Жодних хардкод-рядків
  • Автодоповнення в IDE
  • Зручний рефакторинг

Порада: використовуйте backed enums (string/int) для збереження в БД.

enum OrderStatus: string
{
  case Pending = 'pending';
  case Processing = 'processing';
  case Completed = 'completed';
}

public function rules()
{
  return [
    'status' => ['required', Rule::enum(OrderStatus::class)],
  ];
}

// Каст у моделі - і жодних рядкових статусів
protected $casts = ['status' => OrderStatus::class];
Tips 16 жовтня 2026

`confirmed` - підтвердження пароля без ручних порівнянь

Робите підтвердження пароля й порівнюєте поля вручну?

confirmed робить це автоматично.

Як працює:

Перевіряє, що поле збігається з {field}_confirmation.

Для password автоматично очікує password_confirmation.

Конвенція:

  • Поле: password
  • Підтвердження: password_confirmation

Працює з:

будь-якими полями — пароль, email тощо.

Порада: поле _confirmation не потрібно валідувати окремо.

public function rules()
{
  return [
    'password' => 'required|confirmed|min:8',
    'email' => 'required|email|confirmed',
    'new_password' => 'required|confirmed|min:8',
  ];
}
Tips 14 жовтня 2026

`prohibits` - взаємовиключна валідація

Користувач може платити карткою АБО PayPal. Не обома.

Писати кастомну логіку? Є вбудоване правило.

prohibits гарантує, що поле не може бути присутнім разом з іншим.

Коли корисно:

  • Взаємовиключні способи оплати
  • Або email, або телефон
  • Умовні обмеження полів

Схожі правила:

  • required_without — потрібно A, якщо B немає
  • required_with — потрібно A, якщо B є
  • prohibits — A забороняє B

Порада: комбінуйте з required_without для сценарію “або A, або B, але не обидва”.

public function rules()
{
  return [
    'card_number' => 'prohibits:paypal_email',
    'paypal_email' => 'prohibits:card_number',

    'email' => 'required_without:username|prohibits:username',
    'username' => 'required_without:email|prohibits:email',
  ];
}
Filament v5.10.0
Новини 12 жовтня 2026

Filament v5.10.0: сітка в rich editor, скелетони таблиць і десятки виправлень

Вийшов Filament v5.10.0: елементи керування сіткою в rich editor, допоміжний контент для віджетів-графіків, скелетони завантаження таблиць, submitOnCompletion() для OneTimeCodeInput та багато виправлень авторизації, доступності й стану.

25

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

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