Facade - статический интерфейс к сервисам из контейнера:
// Фасад
Cache::get('key');
// Эквивалент
app('cache')->get('key');
// Под капотом:
class Cache extends Facade {
protected static function getFacadeAccessor(): string {
return 'cache'; // ключ в контейнере
}
}
// __callStatic() перехватывает вызов и делегирует реальному объектуФасады удобны для быстрой разработки, но скрывают зависимости. Для тестируемости предпочитайте DI через конструктор. Real-time facades: use Facades\App\Services\PaymentService;