Laravel jobs là gì ?, laravel mail là gì, laravel queue là gì. Trong thực tế khi thực hiện 1 công việc nào đó xong thì ta cần thực hiện tiếp 1 công việc liên quan kèm theo...ví dụ như khi viết hàm đăng bài viết, ở cuối hàm khi lưu dữ liệu vào db bài viết xong ta thực hiện gửi thông báo cho thành viên.. lúc này ta sử dugj laravel job, laravel mail, và laravel queue để thực hiện việc này.
Chúng ta tạo class bằng lệnh sau
php artisan make:mail NameClassMail
Lúc này trong thư mục app sẽ tự động tạo cho chúng ta 1 thư mục Mail và file class vừa tạo ở trong thư mục này.
Để thực hiện gửi mail được ta cài đặt thông tin mail trong file config trước
config/mail.php
Trong class mail vửa tạo, tại hàm build ta gửi dữ liệu data qua view blade của mail cần gửi
trong file view mail ta khai báo như sau
Khi đã gửi dữ liệu qua, chúng ta có thể in dữ liệu như trong view blade bình thường
php artisan make:jobs JobsName
Sau khi chạy lệnh thì file jobs sẽ tự động được tạo trong thư mục App \ Jobs
chúng ta khai báo nội dung như sau
Trong file jobs này chúng ta use class gửi mail vào để sử dụng,
chúng ta khia báo mảng dữ liệu ở contructor để truyền dữ liệu vào khi dispatch
chúng ta còn sử dụng cả hàm Mail mặc định của laravel
Chúng ta use class job vào controllers hoặc traits cần sử dụng
use App\Jobs\SendMail;
Sử dụng dispatch để gửi tín hiệu sang class job
SendMail::dispatch($arr);
Chúng ta gửi 1 mảng dữ liệu sang class job
4. Dùng laravel queue để lắng nghe và thực hiện các jobs
Ta phải chạy câu lệnh này và không được tắt teminal, trên server thì phải dùng các chương trình bên thứ 3 để chạy lệnh này liên tục
php artisan queue:work
Khi chúng ta dùng dispatch như nói ở trên thì queue sẽ lắng nghe và gọi class job chạy và thực hiện các công việc được khai báo trong hàm handle trong class jobs đó. cụ thể ở đây là gửi mail
Chúc các bạn thành công !
Từ những thứ cơ bản này, bạn hãy tìm hiểu rộng thêm về các chức năng của laravel