پرش به مطلب اصلی

Repository Pattern

Repository فقط وقتی استفاده می‌شود که query یا persistence logic ارزش جدا شدن از service یا model را داشته باشد.

موارد مناسب

  • queryهای پیچیده و پرتکرار
  • filter و sort چندگانه
  • persistence پشت contract مشخص
  • جدا کردن query از use case سنگین

موارد نامناسب

  • wrapper ساده برای Model::query()
  • repository برای هر model بدون نیاز واقعی
  • مخفی کردن همه قابلیت‌های Eloquent پشت abstraction ضعیف

قواعد

  • repository نباید response بسازد
  • repository نباید permission تصمیم بگیرد مگر contract آن access scoped باشد
  • methodها باید business-readable باشند
  • pagination و eager loading باید آگاهانه طراحی شوند