<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>CODARE &#187; Marcelo Araujo</title>
	<atom:link href="http://codare.net/author/msaraujo/feed/" rel="self" type="application/rss+xml" />
	<link>http://codare.net</link>
	<description>Programadores, uni-vos!</description>
	<lastBuildDate>Fri, 03 Dec 2010 21:34:06 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>PHP: Interfaces Fluentes</title>
		<link>http://codare.net/2007/08/17/php-interfaces-fluentes/</link>
		<comments>http://codare.net/2007/08/17/php-interfaces-fluentes/#comments</comments>
		<pubDate>Fri, 17 Aug 2007 12:30:53 +0000</pubDate>
		<dc:creator>Marcelo Araujo</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://codare.net/2007/08/17/php-interfaces-fluentes/</guid>
		<description><![CDATA[Palavras-chave: PHP 5, fluent interfaces, object chaining Algumas práticas podem melhorar a legibilidade de um código, e uma delas é o uso de interfaces fluentes ou encadeamento de objetos. Normalmente, a maioria dos métodos setter de um objeto apresentam retorno &#8230; <a href="http://codare.net/2007/08/17/php-interfaces-fluentes/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Palavras-chave: PHP 5, fluent interfaces, object chaining</p>
<p>Algumas práticas podem melhorar a legibilidade de um código, e uma delas é o uso de interfaces fluentes ou encadeamento de objetos.</p>
<p>Normalmente, a maioria dos métodos setter de um objeto apresentam retorno do tipo void. Mas, em um objeto com interface fluente, os setters irão retornar um objeto, de modo que se possa encadeá-lo.</p>
<p>Vale lembrar que esta prática é apenas suportada no PHP 5, visto que o PHP 4 não suporta referência direta aos objetos retornados por métodos.</p>
<p>Vejamos o exemplo:</p>
<pre>
class A {

      private $_n = '';

      public function setA($n)
      {
            $this-&gt;_n = $n;
            return $this;
      }

      public function reverse()
      {
            $this-&gt;_n = strrev($this-&gt;_n);
            return $this;
      }

      public function getA()
      {
            return  $this-&gt;_n;
      }
}

$a = new A();

print $a-&gt;setA("codare")-&gt;reverse()-&gt;getA();

# Retorna: eradoc

?&gt;
</pre>
<p>E lembre-se: interfaces fluentes requerem situações fluentes!</p>
]]></content:encoded>
			<wfw:commentRss>http://codare.net/2007/08/17/php-interfaces-fluentes/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

