Polymorphisme
PHP 🟡 MidDéfinition
Capacité d'objets de types différents a répondre au même message (méthode). Permet de traiter des objets différents de manière uniforme via une interface commune.
Analogie
Comme la touche Play : que ce soit Spotify, YouTube ou un CD, le résultat est de la musique.
Exemple de code
interface Notifier {
public function send(string $msg): void;
}
class EmailNotifier implements Notifier { /* ... */ }
class SmsNotifier implements Notifier { /* ... */ }
function notify(Notifier $n, string $msg): void {
$n->send($msg); // fonctionne pour tout Notifier
}
Cas d'usage
Pour écrire du code générique qui fonctionne avec n'importe quelle implémentation d'une interface.
Anti-pattern
Utiliser instanceof et des if/else en cascade au lieu de laisser le polymorphisme agir.