Laravel 11: hướng dẫn nâng cấp dễ dàng và từng bước

Cập nhật vào

Mục luc:

Laravel 11: hướng dẫn nâng cấp dễ dàng và từng bước

Giới thiệu

Nâng cấp ứng dụng Laravel của bạn lên phiên bản mới nhất mang lại nhiều lợi ích như:

  • Giảm số lỗi.
  • Giảm rủi ro về bảo mật.
  • Tăng khả năng tương thích với các gói phần mềm của bên thứ nhất và bên thứ ba.

Hãy để mình hướng dẫn bạn và chia sẻ những gợi ý mà bạn không thể tìm thấy trong hướng dẫn nâng cấp chính thức.

Trước khi nâng cấp từ Laravel 10 lên Laravel 11, hãy tìm hiểu những điều mới.

Laravel 11 có nhiều thay đổi và mình đã viết về chúng: Laravel 11 đã ra mắt! Đây là tất cả các tính năng và thay đổi mới.

Bạn thực sự cần phải nâng cấp không?

Khi tôi viết những dòng này, Laravel 10 vẫn còn tồn tại và sẽ có:

  • Sửa lỗi cho đến ngày 6 tháng 8 năm 2024.
  • Sửa lỗi bảo mật cho đến ngày 4 tháng 2 năm 2025.

Đề xuất của mình là chỉ nâng cấp nếu:

  • Dự án vẫn đang trong quá trình phát triển và có tiềm năng sinh lợi rõ ràng.
  • Bạn cần một gói phần mềm chỉ hỗ trợ Laravel 11.
  • Dự án của bạn đã được kiểm thử tốt và việc chuyển đổi sẽ dễ dàng.

Và đừng nâng cấp nếu:

  • Dự án không có bất kỳ mã mới nào được viết gần đây.
  • Dự án của bạn đang ở trạng thái bấp bênh do thiếu kiểm thử.
  • Hoặc dự án đang ở trạng thái ổn định. Nâng cấp chỉ vì nâng cấp không phải là cách tốt nhất để đầu tư thời gian và năng lượng của bạn.

Nếu sau khi đọc điều này, bạn vẫn cân nhắc nâng cấp, hãy thực hiện! Đó có thể là quyết định đúng đắn.

Nhưng nếu bạn tiếp cận cẩn thận, hãy tận dụng hai năm hỗ trợ mà nhóm cung cấp cho Laravel 10 để sửa dự án của bạn trước.

Cách nâng cấp từ Laravel 10 lên Laravel 11 như thế nào?

Trước tiên, nếu bạn vẫn đang chạy Laravel 9, bạn phải nâng cấp lên Laravel 10 trước. Lý thuyết có thể nâng cấp từ 9 lên 11, nhưng mình không khuyến nghị làm như vậy. Tiến hành từng phiên bản một.

Đáp ứng các yêu cầu

  • PHP 8.2+ với các extension sau:
    • Ctype
    • cURL
    • DOM
    • Fileinfo
    • Filter
    • Hash
    • Mbstring
    • OpenSSL
    • PCRE
    • PDO
    • Session
    • Tokenizer
    • XML
  • Nginx hoặc Apache

Như bạn có thể thấy, Laravel 11 không yêu cầu bất cứ điều gì phức tạp để hoạt động đúng cách.

Hãy đảm bảo rằng các gói Composer của bên thứ ba mà bạn đã sử dụng để xây dựng dự án của mình hỗ trợ Laravel 11.

Để kiểm tra, chạy lệnh sau:

1composer why-not laravel/framework 11.0

Nếu có hiển thị một số gói, chạy:

1composer outdated --direct

Như vậy, bạn sẽ thấy các gói nào có phiên bản chính đang chờ bạn.

Tuy nhiên, rõ ràng là một số gói có thể chưa hỗ trợ Laravel 11. Bạn có thể đóng góp cho chúng hoặc tìm kiếm các lựa chọn thay thế.

Hãy tuân thủ hướng dẫn nâng cấp chính thức.

Không có cách thức đặc biệt trong việc nâng cấp ứng dụng Laravel. Bạn chỉ cần làm theo hướng dẫn trong hướng dẫn nâng cấp.

Các hướng dẫn này thường bao gồm:

  1. Đảm bảo phiên bản PHP của bạn đáp ứng yêu cầu tối thiểu.
  2. Thay đổi phiên bản tối thiểu cho một phụ thuộc cụ thể.
  3. Thay đổi một dòng trong một tệp tin cụ thể.
  4. Một phương thức đã thay đổi tham số hoặc giá trị trả về. Kiểm tra xem bạn có đang sử dụng nó và thực hiện các thay đổi cần thiết.
  5. Một lớp hoặc phương thức đã bị hủy bỏ trước đó đã bị xóa, hãy sử dụng một cái gì đó khác (hướng dẫn luôn đưa ra các lựa chọn thay thế).

Tùy thuộc vào quy mô của mã nguồn của bạn, mức độ kiểm thử của nó và thậm chí số lượng dự án bạn cần nâng cấp, điều này có thể là một nhiệm vụ tốn thời gian.

May mắn thay, bạn sẽ thấy dưới đây là một cách đơn giản có thể giúp bạn nâng cấp các dự án Laravel gần như tự động.

Nâng cấp Laravel dễ dàng với Laravel Shift: nâng cấp nhiều dự án lên Laravel 11 chỉ với vài cú nhấp chuột.

Nếu bạn là một nhà phát triển chuyên nghiệp, có thể bạn có rất nhiều khách hàng muốn sử dụng phiên bản mới nhất của Laravel.

Việc nâng cấp có thể dễ dàng trên các dự án sạch và đã được kiểm thử, nhưng cũng có thể là một ác mộng đối với những dự án khác.

Đó là lý do tại sao Jason McCreary, một nhà phát triển Laravel khác, đã phát minh ra Laravel Shift.

Rất đơn giản:

  1. Đăng nhập bằng GitHub, BitBucket hoặc GitLab.
  2. Chọn một Shift và nhập thông tin kho lưu trữ của bạn.
  3. Nhận một Pull Request chứa các commit chính để xem xét.

Ở phía dưới, Laravel Shift sẽ nâng cấp các phụ thuộc và thực hiện các thay đổi cần thiết được mô tả trong hướng dẫn nâng cấp chính thức.

Dưới đây là một số Shifts có sẵn (có phí và miễn phí). Bạn cũng sẽ thấy rằng Laravel Shift có thể làm nhiều hơn chỉ nâng cấp Laravel (mà đã là một thành tựu đáng kể):

  • Chuyển từ Laravel Mix sang Vite (miễn phí, vì vậy hãy thử!).
  • Kiểm tra cú pháp dự án Laravel của bạn để xem liệu bạn có đang làm theo “cách Laravel” (cũng miễn phí).
  • Nâng cấp từ Laravel 5.0 lên Laravel 11.
  • Chuyển từ Tailwind CSS 0.x lên 3.x.
  • Chuyển từ PHPUnit sang Pest.
  • Và nhiều hơn nữa!

Về giá cả thì rất rõ ràng và không quá cao khi so sánh với subscription plans của nhiều phần mềm khác:

  • $99 (khoảng 2,500,000 VND một năm ~ hơn 200,000 VND một tháng) để chạy bất kỳ Shift nào bạn muốn trên dự án của bạn.
  • $5 đến $29 (từ 120,000 VND - 700,000 VND) cho mỗi Shift.

Cảm ơn các bạn đã dành thời gian đọc bài!

Recommended