Latihan 1 dari materi Event & Listener di Laravel — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.
Latihan ini memakai pola yang sama dengan BookBorrowed, tapi untuk toko: event OrderPlaced dan listener SendOrderEmail. Kode awal sudah punya kedua class itu, biarkan namanya.
Di OrderPlaced, tambahkan constructor yang menyimpan data order sebagai property $order, misalnya public function __construct(public array $order) {}.
Di SendOrderEmail, isi handle(OrderPlaced $event) supaya mengembalikan "Email sent for order: " diikuti id order yang dibaca dari event, lewat $event->order["id"].
Di bawah kedua class, buat event dengan order ber-id 1, buat listener-nya, panggil handle() dengan event itu, lalu cetak hasilnya dengan echo. Di Laravel, dispatcher yang memanggil handle(). Di sini kamu memanggilnya sendiri.
Output-nya harus memuat baris ini persis:
Email sent for order: 1
Yang dinilai: ada __construct( di kodemu, listener membaca data lewat $event->, dan baris output di atas.
Hint
Event cuma wadah data: datanya masuk lewat constructor dan disimpan sebagai property. Listener gak menyimpan data sendiri, dia membacanya dari event yang dioper ke handle().
OrderPlaced butuh constructor dengan property $order. Di handle(), gabungkan teks "Email sent for order: " dengan $event->order["id"]. Lalu di bawah class: buat event, buat listener, echo hasil handle().
class OrderPlaced { public function __construct(public array $order) {} } lalu di handle(): return "Email sent for order: " . $event->order["id"]; dan di bawahnya: $event = new OrderPlaced(["id" => 1]); echo (new SendOrderEmail())->handle($event);
</>{ }.css=>#idfn()
Versi baru
HyperSheets
bagian dari BelajarWeb.dev
0%
Membuka gerbang…
HyperSheets
Memperbarui Aplikasi
Versi baru tersedia. Halaman akan dimuat ulang otomatis...