Implementasi Event, Listener, dan Mailable di Laravel.

Oleh 5E_WAHYU SETYA AJI_ 23-119 di 25 Sep 2025 | 12:46
5E_WAHYU SETYA AJI_ 23-119

5E_WAHYU SETYA AJI_ 23-119

Siswa
Postingan: 1
Suka: 1
Anggota sejak: 9 Sep 2025

Deskripsi

Pada eksplorasi ini, saya mencoba membuat fitur Event & Listener di Laravel untuk mengirim email saat post baru dibuat.

Event & Listener di Laravel adalah mekanisme yang memisahkan suatu aksi (Event) dengan respon yang harus dilakukan (Listener). Jadi ketika sebuah peristiwa terjadi, misalnya post baru dibuat, maka Laravel otomatis memanggil Listener yang sudah ditentukan, seperti mengirim email atau mencatat log.


Langkah-Langkah

  1. 1. Membuat Event
    Membuat event PostPublished yang menyimpan data post baru. Event ini digunakan untuk memicu proses ketika post berhasil disimpan.

    public $post;

    public function __construct(Post $post) {

        $this->post = $post;

    }


  2. Membuat Listener
    Membuat listener SendPostPublishedNotification yang akan menangani event dengan mengirimkan email notifikasi menggunakan Mailable.

    use App\Mail\PostPublishedMail;

    use Illuminate\Support\Facades\Mail;


    public function handle(PostPublished $event) {

        Mail::to('dummy@example.com')

            ->send(new PostPublishedMail($event->post));

    }


  3. Membuat Mailable
    Membuat PostPublishedMail yang berfungsi mendefinisikan isi email notifikasi.

  4. public $post;


    public function __construct(Post $post) {

        $this->post = $post;

    }


    public function build() {

        return $this->markdown('emails.posts.published')

                    ->with(['post' => $this->post]);

    }


    Membuat View Email
    Menambahkan file published.blade.php di folder resources/views/emails/posts/ untuk tampilan isi email.

  5. @component('mail::message')

    # Post Baru Diterbitkan


    Judul: {{ $post->title }}


    Konten:  

    {{ $post->content }}


    Terima kasih,  

    {{ config('app.name') }}

    @endcomponent


    Menghubungkan di Controller
    Setelah post berhasil dibuat melalui PostController, event PostPublished dipanggil agar Listener dijalankan.

  6. use App\Events\PostPublished;


    $post = Post::create($validatedData);

    event(new PostPublished($post));


    Hasil Akhir
    Setiap kali post baru dibuat, sistem otomatis mengirim email notifikasi. Pada eksplorasi ini, email diarahkan ke log driver sehingga bisa dicek di file storage/logs/laravel.log.


    Bisa diliat di gambar:




Kesimpulan

Dengan eksplorasi ini, saya memahami alur kerja Event → Listener → Mailable di Laravel, di mana setiap post baru dapat langsung memicu pengiriman email notifikasi secara otomatis.

25 Sep 2025 | 12:46
1 Suka

Laporkan

Silakan jelaskan laporan secara singkat dan jelas.