Laravel 8 releases - Part 2
Bạn cần bỏ ra xxx phút để đọc hết bài này!
Tiếp theo series Laravel 8 releases - Part 1. không biết bạn đã theo dõi chưa, nếu chưa thì hãy ghé qua chút nha.
Còn bây giờ, chúng ta lại tiếp tục với phần 2 của series, hãy cùng xem có gì thú vị nhé 😽
Artisan Serve add option “no-reload”
Với phiên bản Laravel 8.7, tác giả của framework đã thêm một tính năng khá thú vị vào lệnh artisan serve
đó là --no-reload
để không phải tải loại mô trường khi thay đổi file .env
:
php artisan serve --no-reload
Destroy Queues with Artisan
Chức năng này được đóng góp bởi Paras Malhotra sẽ giúp bạn trong quá trình phát triển có thể xóa hàng đợi các jobs bằng cách chạy lệnh:
# Xóa tất cả các jobs từ default queue
php artisan queue:clear
# Xóa các jobs trên kết nối redis và là "emails" queue
php artisan queue:clear redis --queue=emails
takeUntilTimeout on lazy collection
Chức năng này được đóng góp bởi Joseph Silber sẽ giúp bạn dừng các tiến trình quá lâu sau khoảng thời gian nhất định:
$lazyCollection
->takeUntilTimeout(now()->add(5, 'minutes'))
->each(fn ($item) => doSomething($item));
# Sẽ chỉ xử lý các $items trong tối đa 5 phút
HTTP Client onError
Đây cũng là một tính năng được đóng góp bởi người dùng framework, Tim MacDonald. Thêm phương thức onError()
tới HTTP client chấp nhận callback:
return $client->withHeaders($headers)
->post($url, $payload)
->onError(fn ($response) =>
Log::error('API failed', [
'url' => $url,
'payload' => $payload,
'headers' => $headers,
'response' => $response->body(),
])
)->json();
Và bạn cũng có thể sử dụng closure vào phương thức throw
. Và sẽ gọi closure trước khi throw exception:
return $client->withHeaders($headers)
->post($url, $payload)
->throw(fn($response) => Log::error('API failed', [
'url' => $url,
'payload' => $payload,
'headers' => $headers,
'response' => $response->body(),
]))->json();
Để củng cố kiến thức, bạn có thể tự trả lời một số câu hỏi sau mà không cần google trợ giúp không:
- Closure là gì?
- throw có tác dụng gì, và dùng nó khi nào?
Để biết thêm chi tiết, bạn có thể tham khảo release note dưới đây:
https://github.com/laravel/framework/blob/85161b6c071fd25d576b57dfbafa2d526ffe5515/CHANGELOG-8.x.md
Và cuối cùng,
Hẹn gặp lại trong các bài viết tiếp theo,
Cảm ơn bạn đã theo dõi 🥰🥰🥰