منبع: chatgpt
Laravel نیز الگوهای طراحی متعددی را برای سهولت و انعطاف بیشتر در توسعه استفاده میکند. برخی از مهمترین آنها عبارتاند از:
۱. Facade (نما)
- کاربرد: یکی از معروفترین الگوهای مورد استفاده در Laravel، الگوی Facade است که به توسعهدهندگان اجازه میدهد به شیوهای ساده به سرویسهای مختلف دسترسی پیدا کنند. Facade یک رابط ساده برای استفاده از سرویسهای پیچیده درون فریمورک فراهم میکند.
- کجا: سرویسهای اصلی مانند DB، Cache، Auth و غیره از طریق Facade در دسترس هستند.
۲. Service Provider (تأمینکننده خدمات)
- کاربرد: Laravel از الگوی Service Provider برای مدیریت ثبت و بارگذاری وابستگیها و سرویسها استفاده میکند. این الگو مدیریت lifecycle سرویسها را آسانتر میکند.
- کجا: در فایلهای ServiceProvider مانند
AppServiceProvider
که سرویسهای مختلف را درون Container ثبت میکنند.
۳. Repository (مخزن)
- کاربرد: الگوی Repository در Laravel به توسعهدهندگان کمک میکند که لایه دسترسی به دادهها را از منطق تجاری جدا کنند. اگرچه بهطور پیشفرض پیادهسازی نشده است، بسیاری از توسعهدهندگان آن را برای ساختارمندی بهتر استفاده میکنند.
- کجا: برای جداسازی منطق پایگاه داده از کنترلرها در لایههای Domain.
۴. Singleton (تکشیء)
- کاربرد: Laravel از الگوی Singleton برای اطمینان از اینکه فقط یک نمونه از کلاسهای خاص در طول اجرای برنامه ایجاد شود، استفاده میکند. به خصوص برای سرویسهای سنگین یا آنهایی که نیاز به اشتراکگذاری حالت دارند.
- کجا: کلاسهایی مانند
Config
یاApp
به عنوان Singleton در نظر گرفته میشوند.
۵. Observer (ناظر)
- کاربرد: Laravel از الگوی Observer برای مدیریت تغییرات در مدلهای Eloquent استفاده میکند. این الگو برای ثبت رفتارهایی مانند “قبل از ایجاد” یا “بعد از بهروزرسانی” استفاده میشود.
- کجا: برای مدیریت رویدادهای مدلهای پایگاه داده.