Các điểm mới trong Laravel LTS 5.5
Cộng đồng Laravel đang chờ đợi phiên bản mới Laravel 5.5 ra mắt như Taylor Otwell đã viết trên Twitter. Sở dĩ được cộng đồng chờ đợi vì Laravel 5.5 sẽ là phiên bản LTS thứ hai sau khi phiên bản Laravel 5.1 là phiên bản LTS đầu tiên sẽ hết hạn hỗ trợ trong tháng 7 này.
LTS viết tắt của “Long Term Support” có nghĩa là Hỗ trợ dài hạn. Các phiên bản LTS sẽ có hai năm cho việc cập nhật các bản sửa lỗi và ba năm cho các cập nhật về bảo mật. Trong thời gian hỗ trợ của phiên bản LTS, các thành viên trong team Laravel sẽ luôn làm việc cật lực để có những bản cập nhật mới cho bạn, sau thời gian này, bạn nên nâng cấp lên phiên bản mới hơn.
Phiên bản LTS đang sử dụng:
- Laravel LTS 5.1
- https://laravel.com/docs/5.1
- PHP > 5.6
Phiên bản LTS mới nhất:
- Laravel LTS 5.5
- https://laravel.com/docs/5.5
- PHP > 7.0
Các điểm thay đổi trong 5.5:
- Headless Chrome testing: tương thích với Laravel Dusk 2.0.0.
- BelongsToMany của Eloquent thay đổi thứ tự parameters, ứng dụng bảng pivot.
- Thuộc tính $dispatchesEvents của Eloquent.
- Thuộc tính $pivotParent của Eloquent.
- Thuộc tính $exists của model vẫn là true khi dùng soft delete.
- Thêm hàm withCount(‘foo as bar_count’) với hỗ trợ alias cho tên field.
- Định dạng được nội dung exception bằng JSON output.
- Các hàm tiện ích của Request thay đổi hành vi trả kết quả: has(), only(). Bỏ hàm intersect().
- Hàm request($key) không nhận parameter dạng nested key như ‘foo.bar’ nữa, thay vào đó dùng hàm request()->input($key).
- Truyền biến ra view có thể dùng tên hàm động view($viewName)->withMyVariable($value), ra ngoài view sẽ dùng tên biến là $myVariable.
- Các hàm của validator chuyển hết thành public thay vì protected.
- Thêm thư mục routes nằm ngoài cho việc định nghĩa các routes của ứng dụng, trước đây routes nằm trong app/Http/routes.php.
Các chức năng core tích hợp trong 5.5:
- MiddleWare group, tách riêng cho nhiều mục đích sử dụng khác nhau
- Responsable interface -> format một object như một Response trong Controller.
- Rule Object -> Tạo các validation rules một cách linh động hơn bằng các class.
- Casting các field của Pivot model.
- Có thể custom derectives cho biểu thức if của Blade để viết ngắn hơn.
- Có thể dump() hoặc dd() xen kẽ giữa các thao tác trên Collection mà ko bị ngắt quãng ứng dụng, dump() và dd() trở thành một hàm của Collection.
- Tự inject các khai báo Provider và Facade khi install một package vì trong JSON của package có khai báo sẵn các thông tin đó.
- Giao diện debug lỗi quay về style debug trực quan như trên Laravel 2.
- Thêm 2 hàm quăng exception mới throw_if() và throw_unless() giúp việc viết code dễ hiểu hơn.
- Validate data dễ hơn ngay trong Controller, trả ra luôn các giá trị đã validate.
- Cải thiện màn hình error khi tắt debug (thay đổi không đáng kể).
- Customize được các Exception Report.
- Hỗ trợ sẵn các preset cho web app, tương thích Bootstrap và Vue.js.
- Migrate command có thêm chức năng refresh, hỗ trợ roll-back và chạy lại các script migrate đang có -> Giúp rebuild lại DB trong môi trường test nhanh hơn.
- Hỗ trợ thêm cho email templates, tương thích cho Mailables.
- Hỗ trợ render email template ra browser, tương thích cho Mailables.
- Hiện xác nhận khi chạy vendor: publish để check lại các Provider đang được sử dụng.
Nhựt Tân (tổng hợp)