Latihan 1 dari materi Design Patterns di PHP — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.
Kode awal sudah berisi interface Repository dengan dua method, findAll(): array dan findById(int $id): ?array, class UserRepository implements Repository dengan data dua user (id 1 nama Budi, id 2 nama Ani), dan dua baris echo di bawahnya. Biarkan semuanya.
Di dalam class UserRepository, tulis method findAll(): array lengkap dengan badannya: kembalikan seluruh $this->data.
Tulis juga method findById(int $id): ?array lengkap dengan badannya: cari baris yang "id"-nya sama dengan $id lalu kembalikan baris itu, atau null kalau gak ketemu.
Output yang diharapkan:
2
Budi
Yang diperiksa: output memuat 2 (jumlah user dari findAll()) dan Budi (nama dari findById(1)), dan kedua method punya badan { ... } di dalam class, bukan cuma deklarasi seperti di interface.
Hint
Interface cuma menetapkan kontrak. Class yang implements Repository wajib menulis kedua method itu sendiri, lengkap dengan isinya.
findAll mengembalikan $this->data. findById memeriksa tiap baris dengan foreach, mengembalikan baris yang id-nya sama, dan null sesudah loop kalau gak ada yang cocok.
public function findAll(): array { return $this->data; } public function findById(int $id): ?array { foreach ($this->data as $item) { if ($item["id"] === $id) { return $item; } } return null; }
</>{ }.css=>#idfn()
Versi baru
HyperSheets
bagian dari BelajarWeb.dev
0%
Membuka gerbang…
HyperSheets
Memperbarui Aplikasi
Versi baru tersedia. Halaman akan dimuat ulang otomatis...