Структурный паттерн: преобразует интерфейс одного класса в другой, ожидаемый клиентом. Позволяет использовать несовместимые интерфейсы вместе.
class StripeAdapter implements PaymentGateway {
public function __construct(private StripeClient $stripe) {}
public function charge(float $amount, string $token): void {
$this->stripe->charges->create(['amount' => $amount * 100, 'source' => $token]);
}
}Объектный адаптер делегирует вызовы обернутому объекту; классовый - наследует целевой класс (в PHP реже).