facade یک الگو طراحی است که با استفاده از ان میتوان بصورت استاتیک به کلاس های دیگر دسترسی داشت و نیازی نیست که برای ان یک شی جدید ایجاد شود

بدون facade:باید یک new بگیریم و بعد از شی استفاده کنیم

$app = app();
$cache = $app->make('cache');
$cache->put('key', 'value', $minutes);

با facade:نیازی به ساخت شی نیست و بصورت استاتیک در دسترس است

Cache::put('key', 'value', $minutes);

مزایای استفاده از Facadeها

  1. خوانایی کد: کد تمیزتر و قابل فهم‌تر می‌شود

  2. دسترسی آسان: نیاز به resolve کردن دستی اشیاء از container نیست

  3. تست‌پذیری: امکان Mock کردن آسان در تست‌ها

  4. یکپارچگی: رابط یکسانی برای سرویس‌های مختلف ارائه می‌دهد

Facadeهای معروف در لاراول

  • Cache - برای کار با سیستم کش

  • Auth - برای احراز هویت

  • DB - برای کار با پایگاه داده

  • Route - برای مسیریابی

  • Session - برای مدیریت sessionها

  • Storage - برای کار با فایل سیستم