Вийшов Laravel 13 - велике оновлення без звичного болю при переході.
Фокус цього циклу:
- мінімум breaking changes;
- більше вбудованих можливостей;
- сильніші стандартні рішення для сучасних проєктів.
Ключові зміни
-
Laravel 13 потребує PHP 8.3+ і продовжує курс на м'які оновлення. Для більшості проєктів перехід із Laravel 12 має бути швидким.
-
У фреймворку з'явився Laravel AI SDK. Це єдиний інтерфейс для роботи з текстом, зображеннями, аудіо, embedding-моделями та агентами без жорсткої прив'язки до одного провайдера.
-
Laravel тепер має вбудовані JSON:API resources. Це спрощує стандартні API-відповіді зі зв'язками, посиланнями та вибірковими полями.
-
PreventRequestForgery формалізує й підсилює CSRF-захист через перевірку походження запиту, зберігаючи сумісність із захистом на основі токенів.
-
Queue::route(...) дозволяє централізовано призначати з'єднання і чергу для job-класів. Менше розкиданих onQueue() по коду.
-
Атрибути #[Middleware], #[Authorize], #[Tries], #[Timeout] розширюють декларативний підхід. Налаштування ближче до класу, менше службового коду в ініціалізації.
-
Cache::touch(...) продовжує час життя кешу без повторного читання і запису значення. Корисно для часто використовуваних ключів, сесійних і тимчасових даних.
-
Laravel 13 також посилює напрямок ШІ через семантичний і векторний пошук та кращу інтеграцію з embedding-моделями й pgvector.
use App\Jobs\ProcessPodcast;
use Illuminate\Support\Facades\Cache;
use Illuminate\Support\Facades\Queue;
use Illuminate\Routing\Attributes\Controllers\Middleware;
Queue::route(
ProcessPodcast::class,
connection: 'redis',
queue: 'podcasts',
);
#[Middleware('auth')]
class CommentController
{
// ...
}
Cache::put('report:42', ['ready' => true], now()->addMinutes(5));
Cache::touch('report:42', 300);
Джерело: laravel.com/docs/13.x/releases