Method Chaining com PHP

20/04/2010 - 08:10

Method Chaining (encadeamento de métodos) é uma técnica de programação que permite reduzir o tamanho de seus códigos. Em determinadas classes, você precisa chamar vários métodos diferentes em diversas linhas. Com method chaining, você poderá chamar esses métodos em cadeia, em somente uma linha. Por exemplo, veja a seguinte classe de formatação de strings:

class String{
	private $str;

	public function __construct($str){
		$this->str = $str;
	}
	
	public function toLower(){
		$this->str = strtolower($this->str);
	}
	
	public function capitalize(){
		$this->str =  ucfirst($this->str);
	}
	
	public function bold(){
		$this->str = '<strong>'.$this->str.'</strong>';
	}
	
	public function getStr(){
		return $this->str;
	}
}

$string = new String("TEXTO DE EXEMPLO");
$string->toLower();
$string->capitalize();
$string->bold();
echo $string->getStr();

Essa é forma que grande parte dos programadores escrevem seus códigos. Com method chaining, nossa classe ficaria assim:

class String{
	private $str;
	
	public function __construct($str){
		$this->str = $str;
	}
	
	public function toLower(){
		$this->str = strtolower($this->str);
		return $this;
	}
	
	public function capitalize(){
		$this->str =  ucfirst($this->str);
		return $this;
	}
	
	public function bold(){
		$this->str = '<strong>'.$this->str.'</strong>';
		return $this;
	}
	
	public function getStr(){
		return $this->str;
	}
}

$string = new String("TEXTO DE EXEMPLO");
echo $string->toLower()->capitalize()->bold()->getStr();
//Retornará <strong>Texto de exemplo</strong>

Bem mais simples, não? A diferença da outra classe, é que você retorna a instância do objeto a cada método chamado, permitindo o encadeamento.

Bom, como você pode ver, essa classe praticamente não tem muita utilidade, mas permite ter uma boa visão de como funciona a técnica. Agora é com você.

Abraço e até a próxima!

Tags: Programação, PHP

Adicionar ao Delicious Adicionar ao Digg Adicionar ao Google Bookmarks Adicionar ao Technorati Postar no Twitter Adicionar ao Yahoo! Bookmarks

Comentários

Nome: Anibal Sólon
Comentário: Ah, isso é massa! Não sou acostumado a usar isso em PHP, mas com Javascript rola geral


Comente você também!

Não será publicado

Negrito Itálico Sublinhado

 
 

Sobre

Esse site era pra ser um portfólio inicialmente, mas acabou meio que virando um blog. Pretendo postar algumas coisas que considero interessantes e que podem ajudar outras pessoas. Esse site não usa Wordpress como parece, somente um template para Wordpress :)

jQuery - Biblioteca Javascript
Mozilla Firefox - O melhor browser do mundo   Linux - O melhor sistema operacional do mundo   Ubuntu - Distribuição do Linux baseada em Debian FileZilla - Cliente de FTP Mozilla Thunderbird - Cliente de Email PostgreSQL - O mais avançado banco de dados Open Source do mundo Apache - Servidor web PHP - Linguagem de programação server-side

© 2010 Jonnas Fonini.

Q2SU2HZ4A5TR