PHP : Appels de méthode à la chaîne

Publié le 13 septembre 2009 par Methylbro

Il est fréquent de tomber sur des cas semblables à l'exemple suivant :

class Object {
function methodA() {}
function methodB() {}
function methodC() {}
}
$instance = new Object();
$instance->methodA();
$instance->methodB();
$instance->methodC();

En considérant que les méthodes A, B et C soit de type void. C'est-à-dire qu'elle ne retournent rien et qu'elle n'auront pas à l'avenir pour vocation de retourner une information. Il serait intéressant alors de factoriser les trois instructions utilisées pour l'appel a ces trois méthodes.

Pour ce faire, il suffit lors de la déclaration des méthodes, de ajouter l'information suivante :

class Object {
function methodA() {
return $this;
}
function methodB() {
return $this;
}
function methodC() {
return $this;
}
}

L'intérêt est de pouvoir utiliser plus simplement cette classe et de faire appel aux méthodes A, B et C en une seule instruction :

$instance = new Object();
$instance->methodA()->methodB()->methodC();

Plus intéressant n'est-ce pas ?