Laravel Repository Pattern

Seringkali developer laravel pemula menanyakan, “Bagaimana caranya supaya sebuah controller bisa digunakan di controller lainnya?".

Pertanyaan ini memang menunjukkan bahwa si penanya masih pemula, bukan hanya di Laravel tetapi juga di dunia pemrograman.

Sebuah controller yang merupakan bagian dari arsitektur MVC yang dipakai oleh Laravel memang tidak seharusnya dipakai oleh controller lain.

Jika ada fungsi yang memang seringkali atau berulangkali digunakan oleh lebih dari satu controller, itu berarti dia harus diekstrak.

Letakknya bukan di controller lagi, tapi taruh di tempat lain.

Banyak istilahnya di berbagai framework atau kebiasaan, misalnya bisa aja taruh sebagai utility, atau sebagai service, atau apapun istilahnya intinya sama saja, dipisah!

Dalam kasus Laravel, itu berarti dipisah dan buat class tersendiri.

Pola yang cukup terkenal di dunia Laravel untuk menyelesaikan pertanyaan di atas adalah pola Repository atau Repository Patttern.

Kenapa disebut repository, karena class itu menjadi pusat dari logika-logika tertentu yang dikelompokkan.

Kembali lagi seperti yang saya bilang, istilahnya mah bisa apa saja terserah. Intinya sama seperti itu.

Di ebook https://literasikode.com/buku/laravel-dataviz saya membuat studi kasus tentang visualisasi data perhotelan yang terbagi menjadi data rasio keterisian, demografi tamu, kepuasan tamu dan lainnya.

Dan saya membuat repository class untuk masing-masing kategori tersebut, yang berisi method-method untuk mengambil data dari database.

Masing-masing repository tersebut nantinya bisa dengan mudah dipakai di controller mana saja.

Jika kamu ingin belajar repository pattern sekaligus visualisasi data di Laravel, saya persilahkan untuk membaca ebook tersebut. Sekian.

Baca juga


Penulis artikel
Muhammad Azamuddin
Indiehacker & Fullstack Web Developer

Muhammad Azamuddin merupakan seorang Indie hacker dan profesional fullstack web developer dengan pengalaman lebih dari 10 tahun. Selain itu dia juga menulis ebook best-seller buku-laravel-vue.com dan ebook lainnya di literasikode.com.

Dia juga merupakan profesional fullstack developer untuk Toptal

IG: @mas.azamuddin
FB: fb.me/script.holic
Email: mas.azamuddin@gmail.com
Homepage: azamuddin.com