← tüm blog yazıları
Design Pattern 04.07.2026 4 dk okuma

Repository Design Pattern: Laravel’de Ne Zaman İşe Yarar?

Repository pattern her projede şart değil. Ama veri erişimi karışmaya başladığında controller ve servisleri ferahlatan iyi bir ara katman olabilir.

Yazar: EffectiveWeb

Repository Design Pattern: Laravel’de Ne Zaman İşe Yarar?

Repository pattern her derde ilaç değil

Laravel’de repository pattern konusu biraz tartışmalıdır. Bir taraf “Eloquent zaten repository gibi çalışıyor” der, diğer taraf her model için interface ve repository açar. Bence ikisinin ortası daha sağlıklı: ihtiyaç yoksa ekleme, ama ihtiyaç doğduğunda da çekinme.

Ne zaman gerçekten işe yarar?

Bir listeleme ekranında filtre, sıralama, ilişki yükleme, yayın durumu ve sayfalama gibi kurallar çoğalıyorsa sorgular controller içinde kalmamalı. Aynı sorgu farklı yerlerde tekrar ediyorsa repository güzel bir ev olur. Böylece “yayındaki blogları kategoriye göre getir” gibi bir iş tek yerde durur.

Interface tarafı ne zaman anlamlı?

Interface, özellikle servis sınıflarınız doğrudan Eloquent’e bağlanmasın istiyorsanız işe yarar. Test yazarken sahte repository vermek kolaylaşır. Ama küçük bir admin panelde her şeye interface açmak projeyi gereksiz uzatabilir. Burada ölçü şu: Soyutlama gerçekten bir bağımlılığı azaltıyor mu, yoksa sadece dosya sayısını mı artırıyor?

Basit bir kullanım mantığı

  • Controller repository çağırır veya servis üzerinden dolaylı kullanır.
  • Repository sorgu detaylarını saklar.
  • Service iş kuralını taşır.
  • Model ilişki ve cast gibi kendi alanında kalır.

Biz EffectiveWeb projelerinde repository pattern’i özellikle blog, proje, hizmet, lead ve medya gibi büyümeye açık alanlarda seviyoruz. Çünkü içerik sayısı arttıkça filtreleme ve görünürlük kuralları da artıyor.