Увійти Реєстрація
Блог Серії
Кар'єра
Вакансії Компанії
Навчання
Документація Співбесіди Тестування Відео
Екосистема
Пакети Ресурси Проєкти Події
Інше
Про нас
Посібники 29 червня 2026

Facade - спрощений доступ

Facade надає простий уніфікований інтерфейс до складної підсистеми, ховаючи її деталі за одним фасадним об'єктом.

Яку проблему вирішує

Щоб виконати дію, клієнтський код інколи мусить знати про кілька об'єктів, порядок їх ініціалізації та зв'язки між ними. Це засмічує контролери й розповзається копіями по застосунку.

Як вирішує

Фасад надає кілька зручних методів, які всередині координують підсистему. Клієнт викликає один метод і не знає про внутрішню кухню.

class ReportService
{
  public function build(int $userId): array
  {
    return ['status' => 'ok', 'user_id' => $userId];
  }
}

class ReportFacade
{
  public static function build(int $userId): array
  {
    return app(ReportService::class)->build($userId);
  }
}

$report = ReportFacade::build(10);

У Laravel фасади - це синтаксичний цукор над контейнером; вони поєднують ідею Facade та Service Locator й широко застосовуються для сервісів, кешу, черг і логів.

Де застосовувати

  • Спрощення доступу до складних або багатокрокових підсистем.
  • Тонкий вхідний шар у контролерах, що делегує роботу сервісам.

Плюси та мінуси

  • + Код у контролерах коротший і читабельніший.
  • + Деталі ініціалізації та зв'язків приховані в одному місці.
  • Легко перетворити фасад на God Object - тримайте його тонким, реальна логіка живе в сервісах.
  • Статичний фасад приховує залежності; у новому коді часто чистіше інжектувати сервіс через конструктор.
30

Ця стаття - частина серії

Патерни проєктування

10 / 30

  1. 1 Abstract Factory - сімейства об'єктів
  2. 2 Builder - поетапна побудова об'єктів
  3. 3 Factory Method - вибір створення
  4. 4 Prototype - швидке клонування
  5. 5 Singleton - один екземпляр
  6. 6 Adapter - узгодження інтерфейсів
  7. 7 Bridge - відокремлення абстракції
  8. 8 Composite - дерево об'єктів
  9. 9 Decorator - middleware як обгортка
  10. 10 Facade - спрощений доступ
  11. 11 Flyweight - спільні легкі об'єкти
  12. 12 Proxy - контроль доступу і кеш
  13. 13 Chain of Responsibility - ланцюжок обробників
  14. 14 Command - інкапсуляція дії
  15. 15 Interpreter - обробка власних правил
  16. 16 Iterator - контроль обходу
  17. 17 Mediator - координація взаємодії
  18. 18 Memento - збереження стану
  19. 19 Observer - реакція на події
  20. 20 State - поведінка залежно від стану
  21. 21 Strategy - вибір поведінки
  22. 22 Template Method - спільний алгоритм
  23. 23 Visitor - операції над структурами
  24. 24 Repository - доступ до даних
  25. 25 Service Layer - бізнес-логіка в одному місці
  26. 26 Dependency Injection - явні залежності
  27. 27 DTO - передача даних без логіки
  28. 28 MVC / MVP / MVVM - архітектурні підходи
  29. 29 CQRS - розділення читання і запису
  30. 30 Event Sourcing - події як джерело істини

Читати в документації

Коментарі

Увійдіть, щоб залишити коментар

Будьте першим, хто залишить коментар!

Читайте також

Вакансії за темою

Alliance Digital Нова
Сьогодні

PHP Developer

Middle PHP-розробник для фінтех-продукту. Розробка backend на Laravel з PostgreSQL, RabbitMQ, Redis. Реалізація складної бізнес-логіки кредитування, фінансових операцій, зовнішніх інтеграцій. Вимоги: 3+ років PHP, впевнена робота з Laravel, OOP/SOLID, складна бізнес-логіка, PostgreSQL, черги, тестування, production-mindset.

Hurma System Tech Нова
Сьогодні

Full Stack Developer (PHP, Laravel, Vue.js)

Full Stack Developer на PHP та Laravel з фронтенд-частиною на Vue.js. Розроблення та рефакторинг функціоналу HR-системи, робота з БД, REST API, тестування. Вимоги: PHP 8+, 2+ років Laravel, Vue.js, OOP, SQL, Git, базовий TypeScript. Віддалена робота з гнучким графіком.

SendPulse Нова
Сьогодні

Middle+ PHP Developer (with DevOps)

Middle+ PHP Developer з DevOps-експертизою для мультикоманди, що розробляє CRM та освітню платформу. Основна роль: проєктування й реалізація модулів на PHP 8 і Laravel, оптимізація під високе навантаження, розробка інтеграцій. DevOps-компонент: налаштування CI/CD, контейнеризація (Docker/Kubernetes), управління AWS-інфраструктурою. Вимоги: глибока експертиза Laravel, Docker, Kubernetes, Git, технічна англійська.

Пакети за темою

Bagisto

bagisto/bagisto

Bagisto — це платформа для електронної комерції, побудована на Laravel. Вона надає готове рішення для створення та управління інтернет-магазинами з підтримкою каталогу товарів, замовлень, платежів та клієнтів.

27,987 v2.4.10 12 21

Lang

laravel-lang/lang

Список 126 мов для Laravel Framework, Laravel Jetstream, Laravel Fortify, Laravel Breeze, Laravel Cashier, Laravel Nova, Laravel Spark та Laravel UI.

7,776 15.34.3 10