Todos os garotos legais estão usando o encadeamento de métodos atualmente. Para quem não sabe o que é encadeamento de método, ele se parece um pouco com isto:
$foo = new Foo;
$foo->bar()->output();
Parece muito melhor do que duas chamadas separadas, sim? Aqui está um exemplo de implementação de uma classe simples minha do Gravatar:
public function SetEmail($email = '')
{
if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
$this->email = md5(strtolower(trim($email)));
}
return $this;
}
É simples – tudo o que precisamos fazer é garantir que retornemos $ this no final de nossos métodos que desejamos poder encadear.