Hoy voy a comentar algo «chulo» que podemos hacer en PHP con un sencillo «truco»:
Imagina que tenemos la clase Coche que tiene varios métodos, entre ellos «lavar()», «encerar()» y secar(). Para usarlos tendíamos que hacer ésto:
$coche = new Coche;
$coche->lavar();
$coche->encerar();
$coche->secar();
¿Pero a que sería genial poder hacer algo así?
$coche = new Coche;
$coche->lavar()->encerar()->secar();
Esto es «encadenar métodos». En PHP, si queremos hacer ésto basta con añadir al final de cada método:
return $this;
Por ejemplo:
Class Coche
{
public function lavar()
{
echo "Coche lavado.\n";
return $this;
}
public function encerar()
{
echo "Coche encerado.\n";
return $this;
}
public function secar()
{
echo "Coche sequito.\n";
return $this;
}
}
Y podemos usarlo así:
$coche = new Coche;
$coche->lavar()->encerar()->secar();
Y mostrará:
Coche lavado. Coche encerado. Coche sequito.
Y ya que estamos aprovecho para comentar que si tienes que llamar a tus métodos en un determinado orden es una pista de que algo no está bien. Pero eso lo dejo para otro día.