VANHIEP.NET - Làm web giá rẻ - Thiết Kế Website - Thiết Kế Ứng Dụng Mobile
Cách sử dụng laravel jobs, laravel Queues và laravel mail trong dự án laravel

Cách sử dụng laravel jobs, laravel Queues và laravel mail trong dự án laravel

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.

1. Tạo class mail trong laravel 

 

 

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

2. Tạo jobs trong laravel

 

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

 

3. Sử dụng jobs trong controllers hoặc traits

 

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 !

  • Lee Dong Chul TV Sáo Trúc

    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