Блог Серії
Кар'єра
Вакансії Компанії
Навчання
Співбесіди Тестування Відео
Екосистема
Пакети Ресурси
Інше
Події Про нас
Adapter - узгодження інтерфейсів

Adapter - узгодження інтерфейсів

Патерн Adapter потрібен, коли два компоненти мають несумісні інтерфейси. Він дозволяє підключити сторонню бібліотеку без переписування коду.

Адаптер перекладає виклики у формат, який розуміє залежність. Це особливо корисно для платіжних шлюзів, логерів чи зовнішніх API.

Завдяки адаптеру основний код працює з єдиним контрактом. Підміна провайдера відбувається без змін бізнес-логіки. У прикладі StripeAdapter перекладає наш контракт PaymentGateway у виклики SDK Stripe - якщо завтра прийде інший процесинг, ми напишемо новий адаптер, а решта коду не зміниться.

Коли НЕ варто: якщо ви контролюєте обидва боки і можете відразу узгодити інтерфейси - адаптер зайвий. Він потрібен саме для несумісного чужого коду, який не можна змінити.

interface PaymentGateway
{
  public function charge(int $amount, string $currency): string;
}

class StripeClient
{
  public function pay(array $payload): array
  {
    return ['id' => 'ch_123'];
  }
}

class StripeAdapter implements PaymentGateway
{
  public function __construct(private StripeClient $client) {}

  public function charge(int $amount, string $currency): string
  {
    $result = $this->client->pay([
      'amount' => $amount,
      'currency' => $currency,
    ]);

    return $result['id'];
  }
}

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

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

6 / 6

Коментарі

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

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

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

Посібники 13 червня 2026
Патерни проєктування

Singleton - один екземпляр

Патерн Singleton гарантує один екземпляр класу на весь застосунок. У Laravel замість класичного Singleton зі static-властивістю та приватним конструктором використовують контейнерний singleton: app()->singleton(...). Контейнер створює об'єкт один раз і повертає той самий екземпляр на всі залежно

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

Яремчук І.П., ФОП
Full-time Сьогодні

Web-програміст (Fullstack, Laravel, Vue.Js)

Яремчук І.П., ФОП Віддалено За результатами співбесіди

Потрібен Fulstack developer. Ми спеціалізуємося на розробці веб-сайтів, CRM/ERP систем та інших програмних рішень для клієнтів з України, Європи та США. Ми пропонуємо вам можливість працювати віддалено з будь-якої точки світу, в команді професіоналів з багаторічним досвідом. Ви будете відповідати за розробку та підтримку веб-додатків, участь у проектуванні архітектури, взаємодію з клієнтами та іншими членами команди. Вимоги: Досвід роботи на позиції Fullstack Developer від 3 років Практичний досвід роботи з PHP, Larave, Filament Знання JavaScript (ES6+), HTML, CSS Досвід роботи з Vue Досвід роботи з базами даних (SQL або NoSQL) Розуміння принципів роботи RESTful API Активне використання АІ в розробці Вміння працювати в команді та готовність вчитися новому Якщо ви готові приєднатися до нашої команди та прийняти виклик розробки високоякісних програмних продуктів, надсилайте свої резюме. Ми готові розглянути кандидатів без вищої освіти, головне — ваш досвід та вміння.

Хартія, 13-та БрОП НГУ
Full-time Сьогодні

Backend Developer (PHP, Laravel), розробник систем цифрової логістики

Хартія, 13-та БрОП НГУ Віддалено ₴25,000 - ₴75,000

SENIOR FULL-STACK РОЗРОБНИК СИСТЕМ ЦИФРОВОЇ ЛОГІСТИКИ Ми шукаємо Backend Developer Для нас важливіше не те, чи ти працював саме з «ідеальним» набором технологій, а те, чи вмієш ти мислити як інженер, розбиратися в задачах, брати відповідальність за результат і рости разом. Стек можна опанувати,ми допоможемо з онбордингом, контекстом і підтримкою команди. Обов’язки розробляти та покращувати backend-частину продукту створювати інтеграції між сервісами працювати з даними, бізнес-логікою та внутрішніми процесами брати участь в обговоренні рішень разом із командою продукту, дизайну та інженерії покращувати стабільність, продуктивність і **надійність сервісів занурюватися в домен і впливати на те, як продукт розвивається далі Вимоги маєш від 2 років комерційного досвіду в backend-розробці добре розумієш принципи веброзробки, роботу з базами даних, Git вмієш писати чистий, зрозумілий код і не боїшся рефакторингу можеш самостійно розібратися в задачі, поставити уточнювальні запитання й довести її до результату Буде плюсом досвід із сучасним backend-стеком (наприклад: Node.js / TypeScript, PHP / Laravel, Python, Go, Java тощо) досвід роботи з SQL/NoSQL, Docker, CI/CD, тестуванням розуміння, як будуються масштабовані та надійні системи **Надсилайте свої резюме або телефонуйте на офіційний номер 3333 для призначення співбесіди.

СУ
Full-time Вчора

Tech Lead PHP (Laravel, E-commerce)

Сузір'я, ГК Віддалено За результатами співбесіди

Ми — група компаній, що працює у сфері виробництва, дистрибуції та ритейлу, і шукаємо сильного Tech Lead PHP (Laravel) до команди розробників. Ви відіграватимете ключову роль у формуванні нашого технологічного бачення та розробці архітектури внутрішніх проєктів. Основний стек розробки: Laravel (PHP), MySQL/PostgreSQL, Nginx, Redis, Docker, RabbitMQ. Формат роботи: повна зайнятість, можливість працювати віддалено. Ми очікуємо: Досвід роботи в ролі Tech Lead/Team Lead PHP (Laravel) — не менше 2 років; Досвід роботи з PHP-фреймворком Laravel — не менше 5 років (можливий комбінований досвід, але частка Laravel має бути більшою); Розуміння та практичні навички застосування принципів ООП, патернів проєктування, DRY, SOLID тощо; Успішний досвід побудови проєктів на мікросервісній архітектурі; Знання SQL і досвід роботи з MySQL та PostgreSQL; Досвід побудови високонавантажених сервісів, проєктування та оптимізації баз даних; Досвід роботи з REST API (побудова архітектури сервісів і інтеграція зі сторонніми сервісами); Досвід роботи з Git; Знання frontend-фреймворків; Досвід роботи з E-commerce є обов’язковий ; Досвід роботи з чергами (Redis). Інфраструктура та DevOps: — Контейнеризація застосунків у Docker (multi-stage builds, docker-compose, оптимізація образів), уніфікація dev/staging/prod-середовищ. — Деплой і експлуатація на AWS: EC2, RDS (MySQL/PostgreSQL), S3, ElastiCache (Redis), ELB/ALB, CloudWatch. — Налаштування CI/CD-пайплайнів, zero-downtime деплої. — Проєктування та підтримка інфраструктури під високонавантажені e-commerce-сервіси на мікросервісній архітектурі. Основна мета ролі: Активна участь у повному циклі розробки: від проєктування (архітектури загалом, окремих модулів, баз даних, REST API) до запуску та подальшого розвитку продукту; Доопрацювання та вдосконалення поточних проєктів; Активна участь в імплементації нових продуктових рішень і розробка для них архітектури; Контроль якості коду команди, допомога в усуненні несправностей за потреби, обговорення варіантів вирішення задач; Роль не передбачає менеджменту задач команди — функція планування та контролю виконання закріплена за Project Manager. Водночас техлід бере активну участь у оцінці складності, ризиків та трудомісткості задач під час планування робіт.

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

Bagisto

bagisto/bagisto

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

27,248 v2.4.6 12 1

Lang

laravel-lang/lang

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

7,777 15.31.4 1

Про статтю

Категорія
Посібники
Опубліковано
17 червня 2026
Час читання
1 хв
17

Поділитись