La clé pour enchaîner des méthodes comme celle de vos propres classes est de retourner un objet (presque toujours $this
), qui est ensuite utilisé comme objet pour l'appel de méthode suivant.
Comme si:
class example
{
public function a_function()
{
return $this;
}
public function first($some_array)
{
// do some stuff with $some_array, then...
return $this;
}
public function second($some_other_array)
{
// do some stuff
return $this;
}
}
$obj = new example();
$obj->a_function()->first(array('str', 'str', 'str'))->second(array(1, 2, 3, 4, 5));
Remarque, il est possible de retourner un objet autre que $this
, et les choses de l'enchaînement est au-dessus vraiment juste un moyen plus court de dire $a = $obj->first(...); $b = $a->second(...);
, moins la laideur des variables des paramètres que vous aurez N'utilisez plus jamais après l'appel.
double possible (http://stackoverflow.com/questions/3724112/php-method-chaining) – dynamic