Interface
PHP 🟢 JuniorDefinition
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.