Interface
PHP 🟢 JuniorDéfinition
Contrat qui définit les méthodes qu'une classe doit implémenter, sans fournir d'implémentation. Permet le polymorphisme et le decouplage.
Analogie
Comme une prise électrique 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 définir des contrats entre composants et permettre de changer d'implémentation sans modifier le code appelant.
Anti-pattern
Créer des interfaces avec une seule implémentation sans raison de decouplage.