Belajar Repository Pattern Laravel
Last updated
Last updated
Halo perkenalkan nama saya ariadi ahmad. kali ini kita punya materi baru di laravel yaitu konsep repository pattern. disini kita akan membahas mengenai bagaimana cara kerja dari repository pattern.
Saya anggap kalian sudah mengenal laravel. jika kalian belum mengenal laravel kalian bisa belajar dulu. baru kita bisa melanjutkan ke konsep ini.
Pentinya Repository Pattern?
Konsep repository sendiri adalah bagian dari clean architecture. yaitu memisahkan abstraksi yang berhubungan dengan database dengan bisnis logic. prinsip ini juga sejalan dengan SOLID Principle yaitu Single Responsibility. dengan memisahkan bisnis logik dengan database kita bisa mendapatkan banyak manfaat nantinya. seperti code lebih clean dan mudah untuk di testing.
Yang Sering Di Lakukan !
Kebiasaan koding diatas sah-sah saja. dan kelihatanya tidak ada masalah. tapi dengan melakukan di atas maka kita sangat tergantung dengan model customer dan jika kita akan merubah maka kita akan mengotak atik controller.
Kita juga mencampur adukkan logic dan query database di controller. sungguh itu sangat tidak clean kan? maka dari itu kita memisahkan hal yang berbau querry database dengan logic bisnis kita.
Step By Step Download laravel di website resminya.
Setelah Itu Kita membuat sebuah folder baru di dalam app/dengan nama Repository
Selanjutnya kita membuat duah buah file di dalam repository .sebagai contoh kita akan membuat CustomerRepository.php dan CustomerRepositoryImplement.php
contoh kita yaitu menggunakan Customer yaa.
CustomerRepository.php
kita isikan sebuah contract interface untuk membuat interface yang ingin kita gunakan di repository kita. disini saya mengisikan tiga method sebagai contoh.
Selanjutnya kita akan mengisi CustomerRepositoryImplement.php
dengan implementasi dari interface yang kita sudah buat di atas.
Setelah itu kita buat model customer dan controllernya
Untuk isi $fillable
modelnya saya mengisikan dengan (nama,alamat,umur) saja sebagai contoh;
Cara Memakai Repository di controller?
Memanggi Interface dengan use App\Repository\CustomerRepository;
Kita passing dengan construct supaya controllernya tau bahwa dia butuh customer repository
Kita implement method yang diperlukan seperti contoh di atas.
Selanjutnya kita buatkan ServiceProvider agar kita bisa melakukan Devendency Injection
Isinya kita cuma binding agar kita bisa pakai nantinya
Selanjutnya kita daftarkan provider kita di folder config/app di bagian provider
Selesai.
keuntungan?
Misalkan kalian ingin merubah implementasinya. kalian ga perlu lagi mengubah controller cukup di repository
jika kalian ingin mengganti CustomerRepositoryImplement.php
dengan yang baru kalian tinggal ganti dengan meingikuti interface dan kalian bisa ubah behaviornya sesuka kalian
dengan begini kita bisa melakukan unit testing hanya pada reponya.
Code menjadi lebih clean
Apakah Cara Diatas Sudah Sempurna?
Untuk dibilang sempurna ini masih belum bisa di sebut sempurna. yang saya berikan di atas adalah contoh cara implementasi Repository Pattern di laravel. sebenarnya setiap orang beda beda cara implementasinya tapi yang harus kalian pahami bahwa repository pattern mengajak kita untuk memecah kompleksitas querry database dengan logic bisnis.
Cara diatas sebenarnya masih bisa diperbaiki dengan menambahkan yang namanya service. denga service kita memecah lagi logic dengan controller sehingga lebih clean lagi. sehingga controller hanya berisi proses bisnis yang ingin dilakukan.
Sampai disini dulu yaa. SalamProgrammerMakassar