iT邦幫忙

第 11 屆 iThome 鐵人賽

1
Software Development

PHP新手30天實戰金流系列 第 33

[ Laravel ] Event

Laravel6

前言

之後用推播會需要用到 Event

Step1 註冊 Event 和 Listen

1-1

  • 在 EventServiceProvider 中的 $listen 陣列加入一組 event 和 listen,如下:
    protected $listen = [
        'App\Events\TestEvent' => [
                    'App\Listeners\TestListen',
                ],
    ]
    

1-2

  • artisan 產生
    php artisan event:generate
    

Step 2 使用 Event

2-1

  • 在 XXXController中,例:
use App\Events\TestEvent;


class NotificationController extends Controller
{
    public function store(Request $request)
    {
        event(new TestEvent());
    }
}

Step 3 使用 Listen

3-1

  • 開啟 terminal 下指令
    php artisan queue:work
    即可執行。

P.S.

  • 若 listener 要使用 queue, 可以直接 implements ShouldQueue, 如下:

    class TestListen implements ShouldQueue
    {
        public function __construct()
        {
    
        }
    
        public function handle(TestEvent $event)
        {
    
        }
    }
    
  • 因此要處理 queue:
    我們先使用最簡單的方式處理: database

    1. php artisan queue:table, php artisan migrate

    資料庫會多一個 jobs 表

    1. .env 中 QUEUE_CONNECTION=database
  • 當我們沒有執行 php artisan queue:work 時,Event 的請求會存在 DB 的 Jobs 裡


上一篇
[GCP] Nginx server 之 HTTPS(SSL) 設定
下一篇
[ Laravel ] 客製 Auth::guard()
系列文
PHP新手30天實戰金流34

尚未有邦友留言

立即登入留言