Laravel 8 releases - Part 2

LAMP Oct 22, 2020

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:

  1. Closure là gì?
  2. 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 🥰🥰🥰

Tags

Great! You've successfully subscribed.
Great! Next, complete checkout for full access.
Welcome back! You've successfully signed in.
Success! Your account is fully activated, you now have access to all content.