Interface

PHP 🟢 Junior

Definition

Contrat qui definit les methodes qu'une classe doit implementer, sans fournir d'implementation. Permet le polymorphisme et le decouplage.

Analogie

Comme une prise electrique standard : tout appareil qui respecte le format peut se brancher.

Exemple de code

interface PaymentGateway {
  public function charge(float $amount): bool;
  public function refund(string $txId): bool;
}

class StripeGateway implements PaymentGateway {
  public function charge(float $amount): bool { /* ... */ }
  public function refund(string $txId): bool { /* ... */ }
}

Cas d'usage

Pour definir des contrats entre composants et permettre de changer d'implementation sans modifier le code appelant.

Anti-pattern

Creer des interfaces avec une seule implementation sans raison de decouplage.

Termes lies

#core#interview#oop#solid