Những tính năng mới trong Laravel 13 đáng chú ý
Laravel 13 được phát hành ngày 17/03/2026, tiếp tục nhịp phát hành phiên bản lớn hằng năm của Laravel. Thay vì thay đổi mạnh kiến trúc quen thuộc, phiên bản này tập trung vào quy trình phát triển có AI, chuẩn mặc định an toàn hơn và các API biểu đạt rõ ràng hơn.
Những điểm nổi bật nhất gồm Laravel AI SDK chính chủ, JSON:API Resources, tìm kiếm ngữ nghĩa và vector, cơ chế bảo vệ request mới, định tuyến queue theo class, PHP Attributes mở rộng cùng nhiều cải tiến cho cache và vận hành hàng đợi.
Laravel 13 yêu cầu tối thiểu PHP 8.3. Framework hỗ trợ PHP 8.3 đến 8.5; bản sửa lỗi dự kiến được duy trì đến quý III/2027 và bản vá bảo mật đến ngày 17/03/2028.
1. Laravel AI SDK trở thành công cụ chính chủ
Thay đổi tạo nhiều chú ý nhất là Laravel AI SDK. SDK cung cấp một giao diện thống nhất cho sinh văn bản, agent gọi công cụ, embeddings, hình ảnh, âm thanh và tích hợp vector store. Mục tiêu là giúp lập trình viên xây tính năng AI theo phong cách Laravel mà không khóa toàn bộ mã nguồn vào một nhà cung cấp duy nhất.
Một agent có thể được gọi bằng API gọn như sau:
use App\Ai\Agents\SalesCoach;
$response = SalesCoach::make()
->prompt('Phân tích nội dung cuộc gọi bán hàng này...');
return (string) $response;SDK cũng hỗ trợ tạo embeddings trực tiếp từ chuỗi. Đây là nền tảng để xây tìm kiếm ngữ nghĩa, hệ thống hỏi đáp trên dữ liệu nội bộ hoặc quy trình RAG mà không phải tự ghép quá nhiều lớp thư viện.
use Illuminate\Support\Str;
$embedding = Str::of('Tài liệu hướng dẫn Laravel 13')
->toEmbeddings();2. JSON:API Resources được hỗ trợ trực tiếp
Laravel 13 bổ sung JSON:API Resources chính chủ, giúp ứng dụng trả về dữ liệu tuân theo đặc tả JSON:API. Framework xử lý việc tuần tự hóa resource object, relationships, sparse fieldsets, links và các response header phù hợp với chuẩn.
Tính năng này hữu ích với đội ngũ xây API dùng chung cho nhiều client, cần cấu trúc phản hồi nhất quán hoặc muốn giảm lượng mã tự viết cho quan hệ và trường dữ liệu tùy chọn. Nó cũng giúp hợp đồng giữa backend và frontend rõ ràng hơn khi hệ thống phát triển.
3. Tìm kiếm ngữ nghĩa và vector gần hơn với Query Builder
Laravel 13 đưa vector search vào luồng làm việc quen thuộc của lập trình viên. Với PostgreSQL và pgvector, ứng dụng có thể tìm dữ liệu theo độ tương đồng ngữ nghĩa ngay từ Query Builder:
$documents = DB::table('documents')
->whereVectorSimilarTo(
'embedding',
'Hướng dẫn tối ưu hàng đợi trong Laravel'
)
->limit(10)
->get();Laravel Scout trong nhánh 13.x cũng mở rộng tìm kiếm semantic và hybrid cho database engine, Meilisearch và Turbopuffer. Hybrid search kết hợp tìm kiếm từ khóa với độ tương đồng vector, phù hợp cho kho kiến thức, tra cứu sản phẩm hoặc trợ lý AI cần kết quả vừa đúng từ khóa vừa đúng ý định.
4. PHP Attributes được mở rộng
Laravel 13 tiếp tục mở rộng cách cấu hình bằng PHP Attributes. Middleware và kiểm tra quyền có thể đặt trực tiếp cạnh controller hoặc method, giúp hành vi của mã dễ quan sát hơn:
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)
{
// ...
}
}Ngoài controller, attribute còn được bổ sung ở queue, Eloquent, event, notification, validation, testing và resource serialization. Với job, các thiết lập như số lần thử, thời gian chờ hay backoff có thể khai báo bằng #[Tries], #[Timeout], #[Backoff] và #[FailOnTimeout].
5. Queue routing theo class
Queue::route(...) cho phép định tuyến connection và queue mặc định dựa trên class của job tại một vị trí tập trung. Nhờ đó, job không cần lặp lại cấu hình queue hoặc phụ thuộc vào việc gọi onQueue() ở nhiều nơi.
use Illuminate\Support\Facades\Queue;
Queue::route(
ProcessPodcast::class,
connection: 'redis',
queue: 'podcasts'
);Trong các bản cập nhật 13.x, Laravel còn bổ sung khả năng debounce queued listener, tạm dừng hoặc tiếp tục toàn bộ queue và cung cấp thêm thông tin vận hành worker. Các cải tiến này hữu ích với hệ thống có khối lượng background job lớn hoặc cần triển khai an toàn.
6. Bảo vệ request chặt chẽ hơn
Middleware chống giả mạo request được hoàn thiện dưới tên PreventRequestForgery. Bên cạnh cơ chế token CSRF quen thuộc, middleware bổ sung kiểm tra dựa trên origin, giúp tăng khả năng phòng vệ trước request không hợp lệ mà vẫn duy trì tính tương thích với ứng dụng hiện có.
Laravel 13 cũng siết an toàn khi giải tuần tự dữ liệu cache. Cấu hình serializable_classes mặc định là false, hạn chế nguy cơ liên quan đến PHP deserialization gadget chain nếu khóa ứng dụng bị lộ. Dự án cần lưu object PHP trong cache nên khai báo rõ danh sách class được phép.
'serializable_classes' => [
App\Data\CachedDashboardStats::class,
App\Support\CachedPricingSnapshot::class,
],7. Gia hạn TTL cache bằng Cache::touch()
Cache::touch() cho phép kéo dài thời gian sống của một cache item mà không cần đọc giá trị rồi ghi lại. Đây là thay đổi nhỏ nhưng tiện lợi với sliding expiration, session nghiệp vụ hoặc dữ liệu cần được duy trì khi còn phát sinh truy cập.
use Illuminate\Support\Facades\Cache;
Cache::touch('dashboard:summary', 3600);Nếu dự án sử dụng cache store tùy chỉnh, cần bổ sung method touch($key, $seconds) để đáp ứng contract mới.
8. Ít breaking change, nhưng vẫn cần kiểm tra trước khi nâng cấp
Laravel mô tả phiên bản 13 là một bản nâng cấp tương đối nhẹ về công sức. Hướng dẫn chính thức ước tính quá trình nâng cấp cơ bản từ Laravel 12 mất khoảng 10 phút, nhưng thời gian thực tế còn phụ thuộc package, custom contract và mức độ phức tạp của dự án.
| Hạng mục | Yêu cầu hoặc thay đổi |
|---|---|
| PHP | Tối thiểu PHP 8.3 |
| Framework | laravel/framework: ^13.0 |
| Laravel Boost | laravel/boost: ^2.0 |
| Laravel Tinker | laravel/tinker: ^3.0 |
| PHPUnit | phpunit/phpunit: ^12.0 |
| Pest | pestphp/pest: ^4.0 |
Một số điểm cần rà soát gồm cấu hình cache serialization, giá trị uniqueBy khi dùng upsert, tên prefix cache và session mặc định, custom implementations của các contract, cùng hành vi truy vấn xóa có JOIN, ORDER BY hoặc LIMIT.
Checklist nâng cấp nhanh
- Kiểm tra môi trường chạy PHP 8.3 trở lên và khả năng tương thích của extension.
- Rà soát package bên thứ ba trước khi đổi phiên bản trong
composer.json. - Đọc upgrade guide chính thức, đặc biệt các thay đổi có mức ảnh hưởng cao và trung bình.
- Nâng cấp trên nhánh riêng, chạy toàn bộ automated test và kiểm tra luồng nghiệp vụ quan trọng.
- Kiểm tra queue worker, cache, session, API và tác vụ theo lịch trong môi trường staging.
- Chuẩn bị kế hoạch quay lại phiên bản trước trước khi triển khai production.
Có nên nâng cấp lên Laravel 13?
Với dự án mới sử dụng PHP 8.3 trở lên, Laravel 13 là lựa chọn hợp lý nhờ vòng đời hỗ trợ dài, nền tảng AI chính chủ và các API hiện đại hơn. Với dự án Laravel 12 đang vận hành ổn định, việc nâng cấp đáng cân nhắc khi package đã tương thích và đội ngũ có đủ test để kiểm soát rủi ro.
Laravel 13 không cố gắng thay đổi mọi thứ. Giá trị lớn của phiên bản này nằm ở việc đưa AI, vector search và JSON:API vào hệ sinh thái chính chủ, đồng thời làm rõ hơn cấu hình, bảo mật và vận hành. Đây là hướng phát triển thực dụng: bổ sung năng lực mới nhưng vẫn giữ trải nghiệm quen thuộc của Laravel.




Chưa có bình luận. Hãy là người đầu tiên chia sẻ ý kiến.