Sau hơn một thập kỷ kể từ khi ra mắt vào tháng sáu năm 2011, Laravel đã trở thành 1 framwork cực kì nổi tiếng của PHP. Các phiên bản của Laravel được release hằng năm với những nâng cấp đáng kể.
Và bản Laravel 10 chính thức ra mắt vào ngày 14 tháng 2 năm 2023. Trong bài viết này, chúng ta sẽ cùng xem qua tổng quan những điểm mới cũng như là so sánh sự thay đổi với những phiên bản trước (laravel 9) nhé!
Kế hoạch ra mắt sắp tới của các phiên bản laravel
Trước phiên bản Laravel 9, các phiên bản lớn của Laravel được phát hành 2 lần hoặc 6 tháng 1 lần. Kể từ phiên bản Laravel 9, core team đã chuyển lịch phát hành theo năm, phát hành bản Laravel 9 vào tháng 2 năm 2022 thay vì tháng 9 năm 2021 như kế hoạch ban đầu. Hiện nay, các phiên bản Laravel được dự kiến release vào Q1 hàng năm.
Đối với tất cả các phiên bản Laravel, các bản fix bug được cung cấp trong 18 tháng và các bản sửa lỗi bảo mật được cung cấp trong 2 năm. Có nghĩa là Laravel 10 sẽ có bản fix bug vào khoảng tháng 9 năm 2024.
Cũng như theo kế hoạch thì phiên bản laravel 11 sẽ được ra mắt vào quý 1 năm 2024.
Chú ý: Laravel 10 hỗ trợ PHP phiên bản 8.1-8.2 và không hỗ trợ 8.0.
Những điểm mới trong Laravel 10
1. Native Type Declarations
Trước phiên bản 10: sử dụng DocBlocks để làm rõ hơn về các chức năng của một function và loại parameters hoặc response mong đợi.
Để có thể đảm bảo được sự tương thích ngược của framework (breaking changes), các thuộc tính sẽ được áp dụng cho:
-
Dữ liệu trả về (return types)
-
Tham số của phương thức (method arguments)
-
Loại bỏ một số khai báo types không còn cần thiết ở docblock
-
Cho phép có thể khai báo ngay trong các tham số của closure
2. Invokable Validation rules sẽ là mặc định
Trước phiên bản 10: Nếu chúng ta muốn tạo 1 Rule Invokable trong Laravel 9 phải thêm cờ –-invokable khi khai báo.
Phiên bản 10: Khi tạo Rule thì Rule sẽ mặc định là Invokable.
3. Hỗ trợ sửa cột cho CSDL
Nhằm để giảm dần các nhu cầu sử dụng package doctrine/dbal, một tính năng mới của laravel 10 đã được ra mắt cho phép các nhà phát triển sử dụng phương thức change() để sửa đổi các cột mà không cần các gói bổ sung.
4. Hỗ trợ lấy ra Column Type
Cũng như change(), laravel 10 tiếp tục hỗ trợ phương thức Schema::getColumnType mà không cần đến doctrine/dbal.
5. Process Interaction
Process Interaction hỗ trợ chúng ta việc thử nghiệm và chạy các quy trình CLI trở nên dễ dàng.
Process Interaction hỗ trợ chúng ta:
-
Xử lý đầu ra của process khi nhận được
-
Thiết lập Process không đồng bộ
-
Tạo ra nhóm các process
-
Các tính năng testing phong phú thông qua fake()
-
Ngăn chặn các ngoại lệ trong quá trình testing
Process là một tính năng mới rất được đầu tư với nhiều phương thức và option được cung cấp. Bạn có thể tìm hiểu chi tiết ở docs về phần này của Laravel.
6. Cung cấp 1 package mới - Laravel Pennant
Laravel Pennant cung cấp một cách tiếp cận gọn nhẹ, được sắp xếp một cách hợp lý để quản lý các cờ tính năng của ứng dụng của bạn.
Nó cho phép chúng ra tự tin triển khai dần dần các tính năng ứng dụng mới, thử nghiệm các thiết kế giao diện mới. Mình nghĩ các bạn nên tìm hiểu về package này.
7. Một số update nhỏ khác
-
Mang đến Helper String::password() giúp tạo mật khẩu ngẫu nhiên, an toàn có độ dài nhất định. Vì thế chúng ta có thể quản lý dễ dàng hơn.
-
Cải thiện hiệu năng của Eager Loading.
-
PHPUnit 10 Support
Một số thứ bị loại bỏ
Chúng ta có thể thấy loại bỏ khá nhiều phương thức rườm rà không cần thiết để tối ưu hóa.
Tổng kết
Vừa rồi, chúng ta đã cùng nhau tìm hiểu những điểm mới của laravel 10 mà mình biết.
Ngoài những thay đổi ở trên, mình tin chắc rằng vẫn còn một số các thay đổi khác mà mình chưa tìm hiểu ra. Các bạn đóng góp dưới bài viết để mình hoàn thiện hơn nhé!
Cảm ơn tất cả mọi người nhé!