Memahami Event dan Listener di Laravel 5.8

Pada catatan kali ini saya akan mencatat proses belajar saya dalam mempelajari dan memahami cara kerja dari Event dan Listener di Laravel 5.8. Isinya memang akan banyak Snapshot dan sedikit snippet code karena ini adalah catatan bukan tutorial :).

Event classes biasanya berada di folder app/Events, dan listenernya berada di folder app/Listeners. jangan aneh bila tidak menemukan kedua folder tersebut karena akan digenerate saat kita menggenerate Event atau Listener kemudian waktu saat mengeksekusi artisan command.

Saya menggunakan instalasi Laravel yang sama dengan yang ada disini, catatan kecil dari instalasi  laravel dengan cara paling simple yang bisa dilakukan.

Membuat Event dan Listener

Tambahkan baris berikut ini di app/Providers/EventServiceProvider.php untuk membuat Event dan Listenernya.
Proses meregistrasikan event dan listener untuk digenerate.


Generate event dan listener yang sebelumnya didaftarkan di app/Providers/EventServiceProvider.php

Files dari Event dan Listener hasil Generate.

Atau dibuat manual satu persatu Event dan Listenernya dengan cara berikut:

php artisan make:event TestEvent
php artisan make:listener TestEventListener --event="TestEvent"

Membuat event listener

Tapi jangan lupa untuk menambahkan files tsb di file app/Providers/EventServiceProvider.php karena perintah make: event dan make:listener tidak menambah baris tersebut secara otomatis.

Meregistrsikan Event dan Listenernya


Sampai disini saya sudah menambahkan Event dan Listenernya di file berikut ini   app/Providers/EventServiceProvider.php lalu dengan ./artisan event:generate jadilah dua buah file TestEvent.php dan TestEventListener.php seperti yang ada di snapshot diatas (File dan folder otomatis dibuatkan/generate oleh perintah event:generate).


Implementasi Event dan Listener 


Sekarang masuk ketahap bagaimana cara memfungsikan Event dan Listener diatas supaya menjadi sesuatu yang berguna, mari kita mulai dari TestEventListener.php.

TestEventListener.php


Sekarang lakukan perubahan pada method handle() yang berada di file TestEventListener.php, method ini akan dieksekusi saat Event bersangkutan bekerja.
Ini nanti cara ceknya: tail -t ./storage/logs/laravel-{year}-{month}-{date}.log 

Triger/Panggil Event


Untuk memicu/memanggil event tersebut maka kita hanya perlu memanggil Event::fire() di method yang akan mentrigger Event tersebut.

Kita rubah sedikit existing route file dan controller file untuk menempatkan kodenya.

routes/web.php


route


app/Http/Controllers/Controller.php 

Controller

Buka Browser

Di controller ini tadi pemasangan event trigger dilakukan.


Lihat Logs

Log ter-trigger karena event dipanggil.

Sumber


Comments

Popular posts from this blog

Numpang Kerja Remote dari Bandung Creative Hub

Numpang Kerja Remote dari Bandung Digital Valley

Cara Decompile berkas Dex dan Apk Android