Visitor - операції над структурами
Додає нові операції над набором об'єктів, не змінюючи їхні класи. Коли операцій більше, ніж типів, і чому новий тип об'єкта - слабке місце патерну.
Почніть вводити, щоб шукати по статтях, вакансіях, компаніях, проєктах, ресурсах, пакетах, подіях і користувачах.
Статті, новини, туторіали та переклади від учасників спільноти
Додає нові операції над набором об'єктів, не змінюючи їхні класи. Коли операцій більше, ніж типів, і чому новий тип об'єкта - слабке місце патерну.
Laravel 13.24 додав метод dominantColor() до вбудованого API для роботи із зображеннями. Він дозволяє витягти середній колір фото без сторонніх пакунків - ідеально для плейсхолдерів, заповнення letterbox-смуг та тонування карток.
У Laravel Boost з'явилися правила проєкту - набір Markdown-файлів із конвенціями вашого застосунку, які AI-агенти читають залежно від контексту роботи. Функція дозволяє зберігати рішення команди та специфічні практики окремо від загальних інструкцій.
Команда Filament випустила оновлення v4.12.6 та v5.7.6 з вражаючими покращеннями продуктивності: форми рендеряться на 90% швидше, таблиці - на 52% швидше. Також виправлено низку вразливостей безпеки, тому оновлення критично важливе для всіх користувачів.
Спочатку перевіряєте exists(), потім робите дію? Виходить громіздкий if/else.
existsOr() виконає callback, якщо запис не існує.
doesntExistOr() - якщо існує.
Де корисно:
// ПОГАНО
if (!User::where('email', $email)->exists()) {
return response()->json(['error' => 'User not found'], 404);
}
// ДОБРЕ
User::where('email', $email)
->existsOr(function () {
throw new UserNotFoundException('User not found');
});
// Створити, якщо немає
Post::where('slug', $slug)
->existsOr(function () use ($slug) {
Post::create(['slug' => $slug, 'title' => 'Draft']);
});
// Лог при існуванні
Order::where('id', $orderId)
->where('status', 'pending')
->doesntExistOr(function () use ($orderId) {
Log::warning("Non-pending order: {$orderId}");
});
Laravel 13.24 розширює Image API визначенням домінантного кольору та підтримкою HEIC, додає метод modelKeys() до Eloquent query builder, впроваджує правило валідації array_keys та виправляє критичне уповільнення валідації великих масивів з wildcards.
Потрібні різні зв'язки в залежності від контексту?
Використовуйте when() для умовного eager loading.
Типові кейси:
Перевага: одна логіка запиту, різні варіанти відповіді.
// За роллю
$posts = Post::query()
->when(auth()->user()->isAdmin(), function ($query) {
$query->with(['author', 'drafts', 'revisions']);
})
->when(!auth()->user()->isAdmin(), function ($query) {
$query->with('author:id,name');
})
->get();
// За параметрами запиту
$posts = Post::query()
->when(request()->has('include_author'),
fn($q) => $q->with('author')
)
->when(request()->has('include_comments'),
fn($q) => $q->with('comments.user')
)
->get();
Laravel Head - свіжий офіційний пакет від команди Laravel, представлений на Laracon US 2026. Він надає зручний API для управління всіма елементами : заголовками, мета-описами, Open Graph, JSON-LD та ресурсними підказками у Blade, Livewire та Inertia додатках.
Команда Laravel опублікувала офіційне розширення для редактора Zed, яке інтегрує Laravel LSP. Розширення надає автодоповнення, діагностику, підказки та інші можливості для роботи з PHP і Blade файлами, використовуючи знання про вашу Laravel-програму.
Статті, новини та посібники про Laravel і PHP українською: релізи фреймворку, патерни, інструменти та досвід команд. Нижче - розбивка за категоріями й темами, якщо хочете звузити пошук.
Зараз опубліковано 322 матеріали від 3 авторів. Останній матеріал - 30 жовтня 2026.