Proyek ketiga memasukkan database ke dalam permainan: aplikasi kontak dengan schema rancangan sendiri di atas SQLite. Kita berlatih menerjemahkan kebutuhan menjadi tabel, menulis repository dengan prepared statements, membangun pencarian dan filtering, menjaga integritas data lewat validasi, lalu menguji lapisan data dengan test database yang terisolasi.
Setiap bagian berfokus pada satu keterampilan basis data: menerjemahkan kebutuhan menjadi tabel, menulis operasi CRUD dengan prepared statements, membangun pencarian, menjaga integritas, lalu menguji lapisan data. Seluruh kode contoh dijalankan dan diverifikasi di PHP 8.4 dengan SQLite.
Terjemahkan kebutuhan aplikasi kontak menjadi tabel contacts dengan constraint, index, dan data awal pada schema.sql.
Buka → # Bagian 2: Operasi KontakBangun ContactRepository dengan PDO yang disuntikkan, prepared statements, dan lima operasi CRUD yang teruji.
Buka → # Bagian 3: Pencarian dan FilteringKembangkan ContactRepository dengan pencarian LIKE yang di-escape, filter domain email, dan paginasi LIMIT/OFFSET.
Buka → # Bagian 4: Validasi dan IntegritasTambahkan ContactValidator dengan pola error bag, cek duplikat lewat repository, dan tangkap SQLSTATE 23000 sebagai baris pertahanan terakhir.
Buka → # Bagian 5: Testing dan FinalisasiTutup proyek dengan composer.json, test PHPUnit di atas database :memory: yang terisolasi, dan rekap seluruh aplikasi kontak.
Buka →