Laravel

Laravel 13 có gì mới? Tổng hợp tính năng nổi bật mà mọi PHP developer cần biết

Admin
May 14, 2026
4 phút đọc
28

Mỗi năm một lần, đội ngũ Laravel lại "gõ cửa" cộng đồng PHP với một phiên bản mới — và năm 2026, họ mang đến Laravel 13. Nếu bạn từng nghĩ "framework này còn gì để cải tiến nữa không?" thì câu trả lời là: có, và lần này họ đặt cược khá lớn vào AI. Thay vì chỉ thêm vài helper methods hay tối ưu routing, Laravel 13 ra mắt với một AI SDK first-party hoàn chỉnh, hỗ trợ vector search ngay trong query builder, và hàng loạt cải tiến chất lượng cuộc sống khác cho developer. Cùng điểm qua tất cả những gì đáng chú ý nhé!

Thông tin phát hành và chính sách hỗ trợ

Laravel 13 chính thức ra mắt vào ngày 17 tháng 3 năm 2026, tiếp tục chu kỳ phát hành hàng năm (thường vào Q1) của framework. Phiên bản này yêu cầu tối thiểu PHP 8.3 và hỗ trợ đến PHP 8.5.

Chính sách hỗ trợ của Laravel 13:

  • Bug fixes: Đến Q3 năm 2027 (18 tháng)
  • Security fixes: Đến ngày 17/3/2028 (2 năm)

Bảng so sánh các phiên bản Laravel đang được hỗ trợ:

Phiên bảnPHP yêu cầuNgày phát hànhBug fixes đếnSecurity fixes đến
Laravel 118.2 – 8.412/3/20243/9/202512/3/2026
Laravel 128.2 – 8.524/2/202513/8/202624/2/2027
Laravel 138.3 – 8.517/3/2026Q3 202717/3/2028

Ít breaking changes — nâng cấp nhẹ nhàng hơn bao giờ hết

Tin vui đầu tiên: Laravel 13 cam kết giảm thiểu tối đa breaking changes. Thay vì "đập đi xây lại", đội ngũ tập trung vào những cải tiến liên tục không phá vỡ ứng dụng hiện có. Điều này có nghĩa là hầu hết dự án Laravel 12 có thể nâng cấp lên Laravel 13 mà không cần thay đổi nhiều code.

Đây là triết lý đáng khen — thay vì bắt developer dành cả tuần để "chữa" breaking changes sau mỗi lần upgrade, Laravel 13 để bạn tập trung vào việc tận dụng các tính năng mới.

Yêu cầu PHP 8.3 trở lên

Laravel 13 nâng mức yêu cầu tối thiểu lên PHP 8.3. Nếu bạn vẫn đang chạy PHP 8.2, đây là lúc thích hợp để nâng cấp. PHP 8.3 mang đến nhiều cải tiến đáng giá như typed class constants, readonly properties trên anonymous classes, và cải thiện hiệu năng tổng thể. Bước này phù hợp với xu hướng Laravel luôn đi kèm với các phiên bản PHP hiện đại nhất.

Laravel AI SDK — vũ khí AI tích hợp sẵn trong framework

Đây là tính năng được mong đợi và gây tiếng vang nhất của Laravel 13. Laravel AI SDK là gói first-party cung cấp một API thống nhất để làm việc với các mô hình AI — bao gồm sinh văn bản, tool-calling agents, embeddings, tạo âm thanh, tạo hình ảnh và tích hợp vector store — mà không bị phụ thuộc vào một nhà cung cấp AI cụ thể nào.

Nói cách khác: bạn viết code một lần, có thể chuyển đổi giữa OpenAI, Anthropic, Google hay bất kỳ provider nào khác mà không cần refactor toàn bộ logic. Đây là cách tiếp cận "provider-agnostic" — đúng tinh thần Laravel: elegant, expressive và không bị lock-in.

Tạo AI Agent chỉ với vài dòng code

Bạn có thể xây dựng một AI agent với một lời gọi duy nhất:

php
<?php

use App\Ai\Agents\SalesCoach;

$response = SalesCoach::make()->prompt('Analyze this sales transcript...');
return (string) $response;

Không còn phải tự viết HTTP client, xử lý token, parse response hay quản lý context — SDK lo hết, bạn chỉ cần tập trung vào business logic.

Tạo hình ảnh từ ngôn ngữ tự nhiên

Muốn tích hợp tính năng tạo ảnh AI vào ứng dụng? Laravel AI SDK có API gọn gàng cho việc này:

php
<?php

use Laravel\Ai\Image;

$image = Image::of('A donut sitting on the kitchen counter')->generate();
$rawContent = (string) $image;

Một dòng lệnh — một bức ảnh. Đơn giản đến mức gần như... phi thực tế!

Tổng hợp giọng nói (Text-to-Speech)

Xây dựng trợ lý giọng nói, tính năng đọc bài viết hay accessibility feature? SDK hỗ trợ synthesis audio từ text:

php
<?php

use Laravel\Ai\Audio;

$audio = Audio::of('I love coding with Laravel.')->generate();
$rawContent = (string) $audio;

Tạo embeddings cho tìm kiếm ngữ nghĩa

Embeddings là nền tảng của mọi hệ thống AI search hiện đại. Laravel 13 cho phép tạo embeddings trực tiếp từ string thông qua helper quen thuộc:

php
<?php

use Illuminate\Support\Str;

$embeddings = Str::of('Napa Valley has great wine.')->toEmbeddings();

Tích hợp mượt mà với cú pháp fluent của Laravel — đúng phong cách Laravel mà cộng đồng yêu thích.

Semantic / Vector Search — tìm kiếm thông minh ngay trong query builder

Không chỉ dừng lại ở embeddings, Laravel 13 tích hợp sâu vào query builder hỗ trợ vector similarity search — tìm kiếm theo nghĩa ngữ nghĩa thay vì khớp từ khóa cứng nhắc. Tính năng này hoạt động tốt nhất với PostgreSQL + pgvector extension.

Ví dụ thực tế: tìm 10 tài liệu tương tự nhất với câu hỏi của người dùng:

php
<?php

$documents = DB::table('documents')    
->whereVectorSimilarTo('embedding', 'Best wineries in Napa Valley')    
->limit(10)    
->get();

Laravel tự động chuyển đổi chuỗi văn bản thành embedding, rồi thực hiện truy vấn similarity search — tất cả trong một câu lệnh duy nhất. Đây là bước đột phá cho việc xây dựng ứng dụng RAG (Retrieval-Augmented Generation), chatbot có kiến thức về dữ liệu riêng, hay search engine thế hệ mới ngay trong ứng dụng Laravel.

JSON:API Resources — chuẩn API đúng chuẩn quốc tế

Laravel 13 tích hợp first-party hỗ trợ JSON:API — một specification chuẩn hóa cấu trúc response của REST API, rất phổ biến trong các dự án enterprise và hệ thống tích hợp đa nền tảng.

Trước đây, để build JSON:API-compliant response trong Laravel, bạn cần cài package bên thứ ba như timacdonald/json-api. Giờ đây, Laravel xử lý tất cả out-of-the-box:

  • Serialization resource object chuẩn JSON:API
  • Relationship inclusion (include related resources)
  • Sparse fieldsets (chọn lọc fields cần trả về)
  • Links (self, related, pagination...)
  • JSON:API-compliant response headers tự động

Đối với các dự án API-first hoặc cần tích hợp với frontend framework theo chuẩn JSON:API, đây là tin cực kỳ vui.

Queue Routing theo class — định tuyến hàng đợi tập trung

Một nỗi đau quen thuộc của developer khi làm việc với Laravel Queue: muốn thay đổi queue hay connection cho một job, phải vào từng job class để sửa. Laravel 13 giải quyết điều này với Queue Routing by class thông qua Queue::route(...):

php
<?php

Queue::route(ProcessPodcast::class, connection: 'redis', queue: 'podcasts');

Bạn định nghĩa routing rules cho job tại một nơi duy nhất — thường là trong AppServiceProvider — và tất cả các lần dispatch job đó đều tự động tuân theo cấu hình này. Không cần sửa từng job class, không cần nhớ truyền tham số mỗi lần dispatch — đây là cách tiếp cận DRY (Don't Repeat Yourself) đúng nghĩa cho queue management.

PHP Attributes mở rộng — code khai báo, gọn gàng hơn

Laravel 13 tiếp tục mở rộng hỗ trợ PHP Attributes (native annotations) ra nhiều phần hơn của framework — cho phép bạn khai báo các hành vi trực tiếp trên class và method thay vì viết boilerplate code.

Middleware và Authorization trên Controller

Thay vì gọi $this->middleware() trong constructor hay định nghĩa policy trong method body, bạn có thể khai báo thẳng trên class/method:

php
<?php

namespace App\Http\Controllers;

use App\Models\Comment;
use App\Models\Post;
use Illuminate\Routing\Attributes\Controllers\Authorize;
use Illuminate\Routing\Attributes\Controllers\Middleware;

#[Middleware('auth')]
class CommentController
{
    #[Middleware('subscribed')]
    #[Authorize('create', [Comment::class, 'post'])]
    public function store(Post $post)
    {
        // ...
    }
}

Code trở nên tự-tài-liệu hóa (self-documenting) — nhìn vào class là hiểu ngay middleware nào áp dụng, policy nào được kiểm tra, không cần đọc thêm chỗ nào khác.

Attributes cho Queue Jobs

Các thuộc tính điều khiển queue job giờ cũng có thể khai báo qua attributes:

  • #[Tries(3)] — số lần retry tối đa
  • #[Backoff(60)] — thời gian chờ giữa các lần retry (giây)
  • #[Timeout(120)] — timeout tối đa cho job
  • #[FailOnTimeout] — đánh dấu job là failed khi timeout thay vì retry

Ngoài ra, attributes mới còn được bổ sung cho Eloquent, events, notifications, validation, testing và resource serialization — mang lại trải nghiệm "attribute-first" nhất quán trên toàn framework.

Cache::touch() — gia hạn TTL không cần load lại dữ liệu

Một tính năng nhỏ nhưng rất thiết thực: Cache::touch() cho phép bạn gia hạn thời gian sống (TTL) của một cache item mà không cần retrieve và re-store giá trị của nó.

Trước Laravel 13, nếu muốn "làm tươi" TTL của cache item, bạn phải get giá trị ra, rồi put lại với TTL mới — tốn thêm một lần đọc và một lần ghi không cần thiết. Giờ đây chỉ cần:

php
<?php

Cache::touch('user_session_1234', now()->addHours(2));

Đặc biệt hữu ích cho các use case như: duy trì session user đang hoạt động, gia hạn lock khi job đang chạy lâu, hay refresh TTL của dữ liệu được truy cập thường xuyên.

Request Forgery Protection nâng cấp — bảo mật có chiều sâu hơn

Laravel 13 nâng cấp và chính thức hóa middleware bảo vệ CSRF thành PreventRequestForgery. Điểm nổi bật là bổ sung origin-aware request verification — kiểm tra nguồn gốc request (Origin header) bên cạnh CSRF token truyền thống.

Điều này tăng cường bảo vệ trước các cuộc tấn công cross-site request forgery tinh vi hơn, đặc biệt trong các ứng dụng SPA (Single-Page Application) hay API với frontend riêng biệt. Tất nhiên, tính năng này hoàn toàn tương thích ngược với các ứng dụng hiện tại.

Tổng kết — nên nâng cấp lên Laravel 13 không?

Câu trả lời ngắn gọn: , và nên làm sớm.

Laravel 13 không phải là bản "đại tu" làm đảo lộn mọi thứ — đó là điều tốt. Thay vào đó, đây là phiên bản mang tính chiến lược: đặt nền móng vững chắc cho kỷ nguyên AI-native development trong hệ sinh thái PHP. AI SDK, vector search, JSON:API — những tính năng này không chỉ là "nice to have", chúng đang trả lời câu hỏi "Laravel ở đâu trong thế giới AI?" bằng một câu trả lời rõ ràng và đầy tự tin.

Với việc breaking changes được giữ ở mức tối thiểu, quá trình nâng cấp từ Laravel 12 lên 13 được kỳ vọng là khá suôn sẻ cho đa số dự án. Hãy bắt đầu bằng cách chạy:

shell
composer require laravel/framework:^13.0

Rồi kiểm tra upgrade guide chính thức để xử lý các thay đổi nhỏ nếu có.

Tại CodeTuTHub, chúng tôi sẽ liên tục cập nhật các bài viết, hướng dẫn thực hành về Laravel 13 — từ cách tích hợp AI SDK, xây dựng vector search, đến các pattern tốt nhất cho JSON:API. Đừng quên theo dõi chuyên mục Laravel để không bỏ lỡ bất kỳ bài nào nhé!

Admin
Tác giả tại CodeTutHub

0 Bình luận

Chưa có bình luận nào. Hãy là người đầu tiên!
Đang trả lời
Xoá bình luận

Bạn có chắc muốn xoá bình luận này?
Hành động này không thể hoàn tác.

Thông báo hệ thống
Thông tin