Pendahuluan Bayangin lagi ngerjain fitur sederhana, tapi client minta pencarian data yang bisa nyari di banyak kolom sekaligus tanpa bikin aplikasi lemot. Sering banget kita terjebak nulis query panjang lebar di Controller yang akhirnya bikin code jadi berantakan alias spaghetti code. Padahal, pakai Query Builder bawaan Laravel, kita bisa bikin fitur search yang clean dan tetep performant tanpa harus install package pencarian yang berat. Tips & Best Practices Di banyak project, biasanya saya mulai dari menaruh logika pencarian di dalam Scope Model supaya controller tetap bersih dan fokus ke request-response aja. Pernah kejadian user minta pencarian yang bisa nembus ke relasi, jadi saya selalu membiasakan pakai whereHas daripada join manual yang kadang bikin query jadi ambigu. Pas lagi handling database besar, saya pasti selalu nambahin when() agar query cuma ditambahin ke builder kalau input request-nya beneran ada isinya, ini ngebantu banget biar query nggak kepanjangan tanpa al...
Pendahuluan Pernah nggak kepikiran, kenapa Laravel terasa sangat 'pintar' saat kita cuma perlu mengetik satu baris class di constructor controller? Kebanyakan developer baru cuma tahu itu cara Laravel bekerja, tapi sebenarnya ada konsep 'Dependency Injection' (DI) yang jadi tulang punggung kemudahan itu. Dulu, waktu saya masih sering pakai cara manual seperti bikin objek baru di dalam class (pake new Class() ), kode saya jadi susah banget di-test dan sangat kaku. DI di Laravel mengubah cara saya melihat ketergantungan antar-objek, bikin kode jauh lebih modular dan nggak bikin sakit kepala saat fitur makin kompleks. Tips & Best Practices Di banyak project, biasanya saya mulai dari Interface over Implementation . Jadi, daripada injection class langsung, saya pakai interface biar kalau besok butuh ganti engine (misal ganti provider SMS), saya nggak perlu ngacak-ngacak controller. Kedua, Manfaatkan Constructor Injection karena ini cara paling bersih; biarkan Laravel Se...