Nâng Cấp Laravel 13: Checklist 10 Bước Không Thể Bỏ Qua 2026

Nội dung

Hướng dẫn nâng cấp Laravel 13 chi tiết với checklist 10 bước. Từ kiểm tra PHP 8.3, cập nhật dependencies, đến xử lý lỗi thường gặp sau upgrade.
Checklist nâng cấp Laravel 13
Checklist nâng cấp Laravel 13 từ A-Z

Tóm tắt nhanh

  • Laravel 13 yêu cầu PHP 8.3 trở lên — kiểm tra version trước khi upgrade
  • Upgrade mất khoảng 10 phút với hầu hết ứng dụng tiêu chuẩn
  • Zero breaking changes — an toàn cho hầu hết dự án Laravel 12
  • Cập nhật composer.json, chạy composer update, clear cache là đủ
  • Chạy staging test trước khi deploy production

PHP 8.3 là điều kiện bắt buộc?

Laravel 13 chính thức yêu cầu PHP 8.3 trở lên — đây là thay đổi quan trọng nhất mà bạn cần kiểm tra trước khi nâng cấp. Phiên bản PHP 8.1 đã chính thức end-of-life vào tháng 12/2025, và Laravel 13 không còn hỗ trợ PHP 8.2 [1]. Nếu bạn chưa biết Laravel 13 có gì mới, hãy đọc bài Laravel 13 Có Gì Mới? trước nhé!

Bạn có đang chạy PHP 8.3 chưa? Hãy kiểm tra ngay:

php -v

Nếu output hiển thị PHP 8.3.x → bạn đã sẵn sàng. Nếu là PHP 8.2 hoặc thấp hơn → cần nâng cấp PHP runtime trước khi chạy upgrade Laravel. Đây là “show stopper” của Laravel 13 — không thể bỏ qua bước này [2].

Lời khuyên của mình: Nâng cấp PHP lên 8.3 trước, sau đó mới chạy upgrade Laravel. Đừng làm ngược lại!

Kiểm tra staging environment

Staging environment là nơi bạn cần test đầu tiên trước khi đụng đến production. Mọi ứng dụng Laravel đều nên có staging để verify các thay đổi trước khi deploy thật.

Đảm bảo staging environment của bạn:

  • Đồng bộ hoàn toàn với production (cùng PHP version, cùng dependencies)
  • Có dữ liệu mẫu đủ để test các flows chính
  • Có quyền debug để xem lỗi chi tiết

Staging giúp bạn phát hiện vấn đề trước khi ảnh hưởng đến người dùng thật. Đừng bao giờ upgrade trực tiếp trên production!

Backup database

Backup database là bước không thể bỏ qua dù Laravel 13 có zero breaking changes. Trước khi chạy bất kỳ migration nào, hãy đảm bảo bạn có bản backup mới nhất.

Các loại backup cần thực hiện:

  • Full database backup — dùng mysqldump hoặc tool của hosting
  • Verify backup thành công — restore thử trên local để chắc chắn
  • Backup config files — đặc biệt .env và các file cấu hình custom

Thú vị nhỉ! Nhiều dev skip bước này vì nghĩ “upgrade nhẹ không sao” — nhưng mất data mới là thứ không bao giờ muốn xảy ra.

Kiểm tra test suite

Chạy full test suite và đảm bảo 100% pass trước khi upgrade. Đây là cách tốt nhất để verify ứng dụng hoạt động đúng sau khi nâng cấp.

php artisan test

Hoặc nếu dùng PHPUnit trực tiếp:

./vendor/bin/phpunit

Nếu test fail → sửa các lỗi test trước. Test suite pass là điều kiện tiên quyết để tiếp tục. Mình khuyên bạn nên commit code hiện tại vào git branch riêng trước khi upgrade — dễ rollback nếu cần.

Một số thay đổi trong PHPUnit 12 (đi kèm Laravel 13) có thể ảnh hưởng đến test của bạn [3]. Và nếu bạn muốn adopt PHP Attributes — feature mới trong Laravel 13 — hãy đọc hướng dẫn Migration PHP Attributes Laravel 13 nhé!

Cập nhật composer.json

Đây là bước core của upgrade process. Bạn cần cập nhật các dependencies chính trong composer.json.

Mở file composer.json và cập nhật:

"require": {
    "php": "^8.3",
    "laravel/framework": "^13.0",
    "laravel/boost": "^2.0",
    "laravel/tinker": "^3.0"
}

Kiểm tra xem các package third-party có bản compatible với Laravel 13 chưa. Đặc biệt:

  • Các package liên quan đến AI (nếu đang dùng) — so sánh với Laravel AI SDK mới
  • Custom middleware CSRF — đổi tên từ VerifyCsrfToken thành PreventRequestForgery [4]
  • Package liên quan đến cache và session

Đừng quên kiểm tra Packagist để xem các package của bạn có bản Laravel 13 compatible không nhé!

Code cập nhật composer.json cho Laravel 13
Cập nhật Laravel lên version 13.0

Chạy composer update

Sau khi cập nhật composer.json, chạy composer update để tải Laravel 13 về.

composer update laravel/framework laravel/boost laravel/tinker --with-all-dependencies

Flag --with-all-dependencies đảm bảo tất cả related packages cũng được update theo. Quá trình này có thể mất vài phút tùy vào số lượng dependencies.

Nếu gặp conflict → kiểm tra lại các package third-party. Có thể cần update chúng lên bản mới hơn hoặc tìm alternative.

Tip nhỏ: Chạy composer update trên local trước để debug dễ hơn, sau đó mới apply lên staging/production.

Clear cache và optimize

Sau khi composer update hoàn tất, clear tất cả cache để đảm bảo Laravel dùng config mới.

php artisan config:clear
php artisan cache:clear
php artisan view:clear
php artisan route:clear
php artisan optimize

Các lệnh này xóa cache cũ và regenerate files với Laravel 13. Đây là bước quan trọng — nhiều lỗi sau upgrade là do cache không được clear đúng cách.

Kiểm tra các thay đổi quan trọng

Dù Laravel 13 có zero breaking changes ở framework level, có một số thay đổi bạn cần lưu ý.

1. Cache Prefixes

Laravel 13 thay đổi default cache prefix. Nếu bạn dùng shared Redis hoặc cache driver chung → cần cập nhật config [5]:

// Laravel >= 13.x
Str::slug((string) env('APP_NAME', 'laravel')).'-cache-';

2. CSRF Middleware Rename

Middleware chống CSRF đổi tên từ VerifyCsrfToken thành PreventRequestForgery. Nếu bạn có custom CSRF middleware → cần update references [4].

3. Pagination View Names

View names cho Bootstrap 3 pagination thay đổi:

// Laravel <= 12.x
pagination::default

// Laravel >= 13.x
pagination::bootstrap-3

4. Queue Configuration

Nếu dùng queue với failover driver → cần test lại vì behavior có thay đổi nhỏ.

5. Collection Model Serialization

Eager-loaded relations trong collections được preserve tốt hơn. Đây là improvement, không phải breaking change.

Mình khuyên bạn nên dùng Laravel Shift hoặc Rector để scan các deprecated methods tự động [6].

Checklist kiểm tra các thay đổi Laravel 13
Verify các thay đổi sau khi upgrade

Test trên staging

Đây là bước quan trọng nhất trước khi deploy production. staging phải pass toàn bộ test cases trước khi tiếp tục.

Test các scenarios chính:

  • Đăng nhập/đăng ký user
  • CRUD operations trên data
  • API endpoints
  • File upload/download
  • Queue jobs processing
  • Email sending
  • Payment flows (nếu có)

Đừng quên test các edge cases và error handling. Production-like testing trên staging giúp bạn tự tin hơn khi deploy.

Staging environment testing workflow for Laravel upgrade
Test thoroughly on staging before production deployment

Nhiều team skip staging testing vì “nhanh” — nhưng thường mất nhiều thời gian fix bug production hơn!

Deploy production

Sau khi staging pass toàn bộ tests → deploy lên production. Quy trình deploy nên:

  1. Deploy vào maintenance mode — ngăn user truy cập trong lúc upgrade
  2. Chạy migrations (nếu có)
  3. Clear cache lần cuối
  4. Exit maintenance mode
  5. Monitor logs — theo dõi error logs trong 24h đầu
php artisan down
git pull
composer install --optimize-autoloader
php artisan migrate
php artisan config:cache
php artisan route:cache
php artisan view:cache
php artisan up

Đặc biệt chú ý --optimize-autoloader thay vì composer update trên production — nhanh hơn và an toàn hơn.

Xử lý lỗi thường gặp

Dù upgrade “mượt” nhưng biết trước các lỗi thường gặp giúp bạn xử lý nhanh hơn.

Lỗi 1: “Class not found” sau khi upgrade

Nguyên nhân: Package chưa được autoload đúng cách.

Cách fix:

composer dump-autoload
php artisan config:clear

Lỗi 2: PHP version mismatch

Nguyên nhân: Server vẫn chạy PHP 8.2.

Cách fix: Contact hosting/server admin để upgrade PHP lên 8.3.

Lỗi 3: Cache driver không hoạt động

Nguyên nhân: Cache prefix thay đổi, old cached data không tương thích.

Cách fix:

php artisan cache:clear

Lỗi 4: Queue job fail

Nguyên nhân: Job signature hoặc properties thay đổi.

Cách fix: Review queue config mới với Queue::route() method [7].

Lỗi 5: CSRF token mismatch

Nguyên nhân: CSRF middleware đổi tên.

Cách fix: Verify kernel.php hoặc bootstrap/app.php có dùng middleware mới.

Troubleshooting Laravel 13 upgrade issues
Debug common Laravel 13 upgrade issues

Tổng kết

Nâng cấp Laravel 13 thực ra khá đơn giản nếu bạn làm đúng checklist. Với PHP 8.3, zero breaking changes, và khoảng 10 phút cho standard app — đây là một trong những upgrade dễ nhất của Laravel.

Tuy nhiên, đừng vì vậy mà chủ quan. Staging test, backup data, và clear cache là 3 bước không thể skip.

Nếu bạn gặp khó khăn trong quá trình upgrade hoặc có câu hỏi nào → để lại comment nhé, mình sẽ hỗ trợ!

Đừng quên share bài này nếu thấy hữu ích!

Nguồn tham khảo

  1. Laravel News – Laravel 13 Released
  2. Medium – Laravel 13 Features
  3. Laravel Official – Upgrade Guide
  4. Impact Tech Lab – Laravel 13 Release
  5. Bacancy Technology – Laravel 13 Guide

Các câu hỏi thường gặp

Laravel 13 có breaking changes không?

Laravel 13 được thiết kế với zero breaking changes ở framework level. Tuy nhiên, có một số thay đổi nhỏ về cache prefix, CSRF middleware và pagination view names cần lưu ý. Upgrade mất khoảng 10 phút với hầu hết ứng dụng tiêu chuẩn.

Cần PHP version nào để chạy Laravel 13?

Laravel 13 yêu cầu PHP 8.3 trở lên. PHP 8.2 và 8.1 không còn được hỗ trợ. Đây là điều kiện bắt buộc trước khi nâng cấp.

Công cụ nào hỗ trợ upgrade Laravel 13 tự động?

Bạn có thể dùng Laravel Shift để automated upgrade với PR reviewable, hoặc Laravel Boost (/upgrade-laravel-v13 command) để AI-assisted upgrade. Cả hai đều miễn phí hoặc có bản free.

Sau khi upgrade cần làm gì?

Sau khi upgrade: (1) Clear tất cả cache, (2) Chạy full test suite, (3) Test trên staging, (4) Monitor logs 24h đầu trên production. Đặc biệt chú ý các lỗi liên quan đến cache driver và queue.

Laravel 13 có hỗ trợ PHP Attributes không?

Có! Laravel 13 giới thiệu native PHP Attributes cho Models, Controllers, Jobs, Commands, Listeners, Mailables, Notifications và 15+ location khác trong framework. Đây là optional alternative cho class property declarations.

Khi nào nên upgrade lên Laravel 13?

Nếu bạn đang chạy Laravel 12 với PHP 8.3+ → upgrade ngay vì chỉ mất 10 phút. Nếu đang dùng PHP 8.2 → upgrade PHP trước rồi mới upgrade Laravel. Với dự án mới → nên start với Laravel 13 từ đầu.

Tú Anh

Cây bút chính tại VietnamTutor

Bài viết cùng chuyên mục

Hardening Laravel Production: Checklist Bảo Mật Toàn Diện 2026

Checklist hardening Laravel production toàn diện. Từ cấu hình server, database, SSL đến security headers, rate limiting và monitoring.

Authentication & Authorization Trong Laravel: Hướng Dẫn A-Z 2026

Hướng dẫn chi tiết cách xây dựng hệ thống Authentication (xác thực) và Authorization (phân quyền) trong Laravel với Breeze, Fortify, Sanctum, Policies và Gates.

Bảo Mật Laravel: 10 Lỗi Phổ Biến & Cách Phòng 2026

Hướng dẫn 10 lỗi bảo mật phổ biến nhất trong Laravel và cách phòng tránh hiệu quả. Từ XSS, SQL injection đến authentication vulnerabilities.

Migration PHP Attributes Laravel 13: Hướng Dẫn Chi Tiết

Cách chuyển đổi từ protected properties sang PHP Attributes trong Laravel 13 với hướng dẫn từng bước và code examples chi tiết.

Laravel 13 Có Gì Mới? Tổng Hợp Tính Năng Mới 2026

Laravel 13 ra mắt ngày 17/3/2026 với PHP 8.3, PHP Attributes, AI SDK và nhiều cải tiến. Khám phá chi tiết các tính năng mới của

Kubernetes for Beginners 2026: Hướng Dẫn Từ A-Z

Kubernetes (K8s) là nền tảng container orchestration phổ biến nhất hiện nay. Bài hướng dẫn này sẽ giúp bạn hiểu Kubernetes là gì, kiến trúc cơ

Docker Compose Best Practices 2026: 10 Tips Quan Trọng

Docker Compose giúp bạn quản lý multi-container applications dễ dàng hơn. Bài viết này tổng hợp 10 best practices quan trọng nhất để sử dụng Docker

Lỗ hổng RCE (CVE-2025-55182) trên React, Next.js?

Cảnh báo khẩn cấp: React2Shell (CVE-2025-55182) gây RCE nghiêm trọng cho React/Next.js. Nắm cơ chế, dấu hiệu & phòng thủ cấp bách để bảo vệ ứng

Dead-Letter Queue: Giải pháp cứu cánh cho tin nhắn lỗi hệ thống

DLQ là chìa khóa quản lý tin nhắn lỗi hiệu quả trong hệ thống phân tán. Đảm bảo tin nhắn không bị mất, tăng độ tin

Lập trình viên: Xây doanh nghiệp một người, kiếm 10.000 USD/tháng

Lập trình viên: Khám phá khung làm việc để xây dựng doanh nghiệp một người, kiếm 10.000 USD/tháng. Biến kỹ năng code thành cỗ máy tiền,