Back to blogTips for Developers

آشنایی با الگوی طراحی Repository در Laravel
April 11, 2026
Written by:
نیلوفر عباسی

وقتی کوئریهای Eloquent مستقیم داخل Controller نوشته میشوند، تست نوشتن و تغییر منبع داده بعداً سخت میشود. الگوی Repository این مشکل را حل میکند.
ایدهی اصلی
بهجای صدا زدن مستقیم User::where(...) در Controller، یک اینترفیس مثل UserRepositoryInterface تعریف میکنید و پیادهسازی آن را در یک کلاس جدا مینویسید.
- Controller فقط با اینترفیس کار میکند، نه با جزئیات Eloquent.
- تست نوشتن سادهتر میشود چون میتوانید Repository را mock کنید.
- تغییر منبع داده (مثلاً از MySQL به یک API خارجی) بدون تغییر Controller ممکن میشود.
البته برای پروژههای کوچک، این لایهی اضافه ممکن است پیچیدگی غیرضروری ایجاد کند؛ تصمیم باید متناسب با اندازهی پروژه باشد.