Latihan 1 dari materi Service Container di Laravel — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.
Kode awal sudah punya interface NotificationService dengan method send(string $message): string, dan class EmailNotification implements NotificationService yang masih kosong. Biarkan interface-nya, lalu:
Di dalam EmailNotification, tulis public function send(string $message): string yang mengembalikan "Email: $message". Awalan Email: dirangkai di dalam class ini.
Di bawah semua class, daftarkan binding-nya ke container: app()->bind(NotificationService::class, EmailNotification::class);. Di proyek Laravel, baris ini ada di method register() sebuah service provider, ditulis $this->app->bind(...).
Minta service-nya dari container lewat interface-nya, bukan dengan new: $service = app(NotificationService::class);.
Teks "Email ditulis di dalam class EmailNotification, bukan di baris echo di bawahnya.
Kodenya memakai bind(NotificationService::class, EmailNotification::class) dan meminta app(NotificationService::class).
Penilai juga bertanya ke container class apa yang dia berikan untuk NotificationService, dan mengharapkan EmailNotification.
Hint
Interface cuma menyebut method apa yang wajib ada. Container yang memilih class pengisinya, sesuai binding yang kamu daftarkan.
Isi EmailNotification dengan method send yang mengembalikan teks berawalan Email: lalu pesannya. Di bawah class, daftarkan binding dengan app()->bind(...), lalu minta app(NotificationService::class) dan kirim Selamat datang!.
public function send(string $message): string { return "Email: $message"; } lalu app()->bind(NotificationService::class, EmailNotification::class); $service = app(NotificationService::class); echo $service->send("Selamat datang!");
</>{ }.css=>#idfn()
Versi baru
HyperSheets
bagian dari BelajarWeb.dev
0%
Membuka gerbang…
HyperSheets
Memperbarui Aplikasi
Versi baru tersedia. Halaman akan dimuat ulang otomatis...