<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>
<channel>
	<title>Comments on: Utilizando properties em PHP5</title>
	<atom:link href="http://arthurfurlan.org/blog/2007/05/08/utilizando-properties-em-php5/feed/" rel="self" type="application/rss+xml" />
	<link>http://arthurfurlan.org/blog/2007/05/08/utilizando-properties-em-php5/</link>
	<description>/^assuntos (nerds)? aleatórios$/</description>
	<pubDate>Thu, 20 Nov 2008 09:05:41 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.2</generator>
		<item>
		<title>By: Marcelo</title>
		<link>http://arthurfurlan.org/blog/2007/05/08/utilizando-properties-em-php5/#comment-1751</link>
		<dc:creator>Marcelo</dc:creator>
		<pubDate>Mon, 17 Dec 2007 18:44:36 +0000</pubDate>
		<guid isPermaLink="false">http://arthurfurlan.com.br/blog/2007-05-08/utilizando-properties-em-php5/#comment-1751</guid>
		<description>Tenho que concordar com o Fernando em algumas coisas que disse.  Quando alguém generaliza (como em “talvez porque a maioria dos programadores PHP não sabem programar”), acaba passando um certo ar de superioridade. Se não foi sua intenção, é melhor pensar um pouco mais antes de escrever.

Anos atrás, ensinava-se que um objeto possuia campos, atributos ou propriedades. Todos os nomes revelavam a mesma coisa.  Mas hoje em dia, parece que isso perdeu o sentido. Alguns passaram a chamar somente de campos (ou atributos) e passaram a chamar de propriedades os campos (ou atributos) com metodos "getters" e "setters".  Para mim, isso é o mesmo que usar Dreamweaver e chamar o elemento div de layer.

__set não serve pra isso. Vide o conceito por detrás do comentário do Daniel: "mas gostaria que as propertys fossem mais parecida com as do delphi, é mais clara a escrita". 
Pegue uma classe com meia-dúzia de atributos com validações complexas e faça tudo através do __set.  Percebe como perde o sentido? tudo o que for relativo a essas variáveis vai estar dentro de um grande método difícil de se manter. 

My two cents</description>
		<content:encoded><![CDATA[<p>Tenho que concordar com o Fernando em algumas coisas que disse.  Quando alguém generaliza (como em “talvez porque a maioria dos programadores PHP não sabem programar”), acaba passando um certo ar de superioridade. Se não foi sua intenção, é melhor pensar um pouco mais antes de escrever.</p>
<p>Anos atrás, ensinava-se que um objeto possuia campos, atributos ou propriedades. Todos os nomes revelavam a mesma coisa.  Mas hoje em dia, parece que isso perdeu o sentido. Alguns passaram a chamar somente de campos (ou atributos) e passaram a chamar de propriedades os campos (ou atributos) com metodos &#8220;getters&#8221; e &#8220;setters&#8221;.  Para mim, isso é o mesmo que usar Dreamweaver e chamar o elemento div de layer.</p>
<p>__set não serve pra isso. Vide o conceito por detrás do comentário do Daniel: &#8220;mas gostaria que as propertys fossem mais parecida com as do delphi, é mais clara a escrita&#8221;.<br />
Pegue uma classe com meia-dúzia de atributos com validações complexas e faça tudo através do __set.  Percebe como perde o sentido? tudo o que for relativo a essas variáveis vai estar dentro de um grande método difícil de se manter. </p>
<p>My two cents</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Daniel Tré</title>
		<link>http://arthurfurlan.org/blog/2007/05/08/utilizando-properties-em-php5/#comment-1329</link>
		<dc:creator>Daniel Tré</dc:creator>
		<pubDate>Thu, 01 Nov 2007 11:53:26 +0000</pubDate>
		<guid isPermaLink="false">http://arthurfurlan.com.br/blog/2007-05-08/utilizando-properties-em-php5/#comment-1329</guid>
		<description>Acho que Fernando não sabe programar...
Qualquer pessoa que sabe o mínimo de programação, tem certeza de que a propriedade foi criada para simplificar a forma de acesso e poder ter validação e tratamento da informação da propriedade.

Programei muito tempo em delphi, o php tem suas peculiaridades...

Outra coisa que Fernando não entendeu é que $p-&#62;FirstName é diferente de $p-&#62;firstName, o primeiro é Propriedade e o segundo Atributo, não é que se possa acessar com case-insensitive como ele disse... é que realmente são coisas completamente diferentes...

se $p-&#62;firstName fosse publica poderiamos acessá-lo e não haveria nenhum tipo de tratamento completamente diferente ocorre em $p-&#62;FirstName que vc pode atribuir methodos de read e write para tratar e validar os dados.

Deixo aqui que fico feliz pelo php evoluir, mas gostaria que as propertys fossem mais parecida com as do delphi, é mais clara a escrita. 
Do mais o php é o exemplo de como o simples é funcional e rápido!!!

Abraços e parabéns</description>
		<content:encoded><![CDATA[<p>Acho que Fernando não sabe programar&#8230;<br />
Qualquer pessoa que sabe o mínimo de programação, tem certeza de que a propriedade foi criada para simplificar a forma de acesso e poder ter validação e tratamento da informação da propriedade.</p>
<p>Programei muito tempo em delphi, o php tem suas peculiaridades&#8230;</p>
<p>Outra coisa que Fernando não entendeu é que $p-&gt;FirstName é diferente de $p-&gt;firstName, o primeiro é Propriedade e o segundo Atributo, não é que se possa acessar com case-insensitive como ele disse&#8230; é que realmente são coisas completamente diferentes&#8230;</p>
<p>se $p-&gt;firstName fosse publica poderiamos acessá-lo e não haveria nenhum tipo de tratamento completamente diferente ocorre em $p-&gt;FirstName que vc pode atribuir methodos de read e write para tratar e validar os dados.</p>
<p>Deixo aqui que fico feliz pelo php evoluir, mas gostaria que as propertys fossem mais parecida com as do delphi, é mais clara a escrita.<br />
Do mais o php é o exemplo de como o simples é funcional e rápido!!!</p>
<p>Abraços e parabéns</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Pedro</title>
		<link>http://arthurfurlan.org/blog/2007/05/08/utilizando-properties-em-php5/#comment-467</link>
		<dc:creator>Pedro</dc:creator>
		<pubDate>Tue, 21 Aug 2007 05:46:48 +0000</pubDate>
		<guid isPermaLink="false">http://arthurfurlan.com.br/blog/2007-05-08/utilizando-properties-em-php5/#comment-467</guid>
		<description>Não ligue para o que alguns ignorantes possam vir a dizer. Não que eu esteja dizendo que o Fernando é ignorante, mas você sabe como é... a internet está cheia deles!

Seu artigo é excelente! O dia que as pessoas entenderem os verdadeiros benefícios da programação OO, o nível das aplicações web irá crescer muito.

Parabéns!</description>
		<content:encoded><![CDATA[<p>Não ligue para o que alguns ignorantes possam vir a dizer. Não que eu esteja dizendo que o Fernando é ignorante, mas você sabe como é&#8230; a internet está cheia deles!</p>
<p>Seu artigo é excelente! O dia que as pessoas entenderem os verdadeiros benefícios da programação OO, o nível das aplicações web irá crescer muito.</p>
<p>Parabéns!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Arthur Furlan</title>
		<link>http://arthurfurlan.org/blog/2007/05/08/utilizando-properties-em-php5/#comment-442</link>
		<dc:creator>Arthur Furlan</dc:creator>
		<pubDate>Fri, 03 Aug 2007 19:11:46 +0000</pubDate>
		<guid isPermaLink="false">http://arthurfurlan.com.br/blog/2007-05-08/utilizando-properties-em-php5/#comment-442</guid>
		<description>@Fernando:

&lt;em&gt;&#62; Pelo visto você acha que está no grupo dos que sabe.&lt;/em&gt;

Uma coisa não tem necessariamente a ver com a outra! Eu acredito que o PHP seja a linguagem com o maior número de adeptos no nosso país, isso faz com que inevitavelmente existam pessoas que não possuam conhecimento necessária para trabalharem profissionalmente com a tecnologia (o que é normal, diga-se de passagem). Porém no PHP, diferentemente das outras linguagens, a maior parte dessas pessoas estão empregadas (ok, isso não é normal)! Não vou entrar nos méritos de porque isso acontece ou porque deixa de acontecer, mas isso é fato (concordamos nesse ponto pelo menos!?) e está se tornando cada vez mais comum. Porém esse é um outro assunto, muito mais longo do que o tratado nesse post.

&lt;em&gt;&#62; Pergunta: “elegante” é declarar variáveis com um nome e acessá-las com outro? Se ‘id’ é igual a ‘Id’, não tem sentido a linguagem ser case-sensitive no que diz respeito as variáveis.&lt;/em&gt;

Você precisa aprender à abstrair os conceitos por detrás dos exemplos... Mas vamos começar comentando que uma property não é uma variável física, ela está mais para um ponteiro do que para uma variável propriamente dita. Além disso, declarar uma variável com letra minúscula e acessá-la com letra maiúscula é apenas um padrão que eu costumo adotar, porém existem n outros padrões sobre o assunto. Alguns deles sugerem colocar '_' na frente das variáveis, outro sugerem 'm_' e por ae vai... Acredite, definitivamente o conceito exposto neste post não é "declare seus atributos com letras minúscula e suas propriedades com letras maiúsculas".

&lt;em&gt;&#62; Se você não quer que um var_dump mostre o conteúdo de sua variável, retire o metodo __get, oras. Você abre a porta para o retorno da variável a ainda quer que o valor esteja inacessível?&lt;/em&gt;

Na realidade, esse comentário foi só para alertar as pessoas que no PHP é possível ver o valor de uma variável privada com as funções print_r() ou var_dump(), e que o uso dessa técnica não previne isso. Teste você mesmo:

&lt;pre&gt;&lt;code class="prettyprint"&gt;
class Foo {
    private $foo = 'bar';
}

echo '&#60;pre&#62;';
$obj = new Foo;
print_r($obj);
var_dump($obj);
echo '&#60;/pre&#62;';
&lt;/pre&gt;&lt;/code&gt;

&lt;em&gt;&#62; Agora minha dúvida final: se (no inglês) uma classe contém methods e properties, por que cargas d’água “uma property permite que você associe rotinas de acesso à um atributo da sua classe”? Oras, se property é propriedade, o que você está criando são métodos de acesso.&lt;/em&gt;

Relembrando o ponto citado anteriormente sobre abstrair conceitos de exemplos... O que uma property faz é associar uma variável à um método/rotina/whatever, nada mais do que isso.

&lt;em&gt;&#62; Vide manual. Está lá a pelo menos dois anos.&lt;/em&gt;

Sim. Todas as funcionalidades da linguagem estão lá.
http://br.php.net/manual/pt_BR/language.oop5.overloading.php</description>
		<content:encoded><![CDATA[<p>@Fernando:</p>
<p><em>&gt; Pelo visto você acha que está no grupo dos que sabe.</em></p>
<p>Uma coisa não tem necessariamente a ver com a outra! Eu acredito que o PHP seja a linguagem com o maior número de adeptos no nosso país, isso faz com que inevitavelmente existam pessoas que não possuam conhecimento necessária para trabalharem profissionalmente com a tecnologia (o que é normal, diga-se de passagem). Porém no PHP, diferentemente das outras linguagens, a maior parte dessas pessoas estão empregadas (ok, isso não é normal)! Não vou entrar nos méritos de porque isso acontece ou porque deixa de acontecer, mas isso é fato (concordamos nesse ponto pelo menos!?) e está se tornando cada vez mais comum. Porém esse é um outro assunto, muito mais longo do que o tratado nesse post.</p>
<p><em>&gt; Pergunta: “elegante” é declarar variáveis com um nome e acessá-las com outro? Se ‘id’ é igual a ‘Id’, não tem sentido a linguagem ser case-sensitive no que diz respeito as variáveis.</em></p>
<p>Você precisa aprender à abstrair os conceitos por detrás dos exemplos&#8230; Mas vamos começar comentando que uma property não é uma variável física, ela está mais para um ponteiro do que para uma variável propriamente dita. Além disso, declarar uma variável com letra minúscula e acessá-la com letra maiúscula é apenas um padrão que eu costumo adotar, porém existem n outros padrões sobre o assunto. Alguns deles sugerem colocar &#8216;_&#8217; na frente das variáveis, outro sugerem &#8216;m_&#8217; e por ae vai&#8230; Acredite, definitivamente o conceito exposto neste post não é &#8220;declare seus atributos com letras minúscula e suas propriedades com letras maiúsculas&#8221;.</p>
<p><em>&gt; Se você não quer que um var_dump mostre o conteúdo de sua variável, retire o metodo __get, oras. Você abre a porta para o retorno da variável a ainda quer que o valor esteja inacessível?</em></p>
<p>Na realidade, esse comentário foi só para alertar as pessoas que no PHP é possível ver o valor de uma variável privada com as funções print_r() ou var_dump(), e que o uso dessa técnica não previne isso. Teste você mesmo:</p>
<pre><code class="prettyprint">
class Foo {
    private $foo = 'bar';
}

echo '&lt;pre&gt;';
$obj = new Foo;
print_r($obj);
var_dump($obj);
echo '&lt;/pre&gt;';
</code></pre>
<p><em>&gt; Agora minha dúvida final: se (no inglês) uma classe contém methods e properties, por que cargas d’água “uma property permite que você associe rotinas de acesso à um atributo da sua classe”? Oras, se property é propriedade, o que você está criando são métodos de acesso.</em></p>
<p>Relembrando o ponto citado anteriormente sobre abstrair conceitos de exemplos&#8230; O que uma property faz é associar uma variável à um método/rotina/whatever, nada mais do que isso.</p>
<p><em>&gt; Vide manual. Está lá a pelo menos dois anos.</em></p>
<p>Sim. Todas as funcionalidades da linguagem estão lá.<br />
<a href="http://br.php.net/manual/pt_BR/language.oop5.overloading.php" rel="nofollow">http://br.php.net/manual/pt_BR/language.oop5.overloading.php</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Fernando</title>
		<link>http://arthurfurlan.org/blog/2007/05/08/utilizando-properties-em-php5/#comment-244</link>
		<dc:creator>Fernando</dc:creator>
		<pubDate>Fri, 22 Jun 2007 04:48:12 +0000</pubDate>
		<guid isPermaLink="false">http://arthurfurlan.com.br/blog/2007-05-08/utilizando-properties-em-php5/#comment-244</guid>
		<description>"talvez porque a maioria dos programadores PHP não sabem programar"

Deprimente.

Pelo visto você acha que está no grupo dos que sabe. Pergunta: "elegante" é declarar variáveis com um nome e acessá-las com outro? Se 'id' é igual a 'Id', não tem sentido a linguagem ser case-sensitive no que diz respeito as variáveis.

Quando você declara uma variável como privada, __set passa a funcionar  sem a necessidade da gambiarra da letra maiúscula.

"Apesar de definir um atributo como privado e não criar método de get para ele, o programador poderá descobrir o valor do seu atributo através dos comandos print_r() ou var_dump(). Então, esse tipo de prática só não basta para manter um dado do objeto em sigilo"

Permita-me perguntar se você estava babando enquanto escrevia esse comentário. Estava?  Se você não quer que um var_dump mostre o conteúdo de sua variável, retire o metodo __get, oras. Você abre a porta para o retorno da variável a ainda quer que o valor esteja inacessível?

Agora minha dúvida final: se (no inglês)  uma classe contém methods e properties, por que cargas d'água "uma property permite que você associe rotinas de acesso à um atributo da sua classe"? Oras, se property é propriedade, o que você está criando são métodos de acesso.

Quanto ao comentário do Mário ("Muito legal esse esquema de Property, precisa ser mais divulgado."):
Vide manual.  Está lá a pelo menos dois anos.

"Use the manual, Luke".</description>
		<content:encoded><![CDATA[<p>&#8220;talvez porque a maioria dos programadores PHP não sabem programar&#8221;</p>
<p>Deprimente.</p>
<p>Pelo visto você acha que está no grupo dos que sabe. Pergunta: &#8220;elegante&#8221; é declarar variáveis com um nome e acessá-las com outro? Se &#8216;id&#8217; é igual a &#8216;Id&#8217;, não tem sentido a linguagem ser case-sensitive no que diz respeito as variáveis.</p>
<p>Quando você declara uma variável como privada, __set passa a funcionar  sem a necessidade da gambiarra da letra maiúscula.</p>
<p>&#8220;Apesar de definir um atributo como privado e não criar método de get para ele, o programador poderá descobrir o valor do seu atributo através dos comandos print_r() ou var_dump(). Então, esse tipo de prática só não basta para manter um dado do objeto em sigilo&#8221;</p>
<p>Permita-me perguntar se você estava babando enquanto escrevia esse comentário. Estava?  Se você não quer que um var_dump mostre o conteúdo de sua variável, retire o metodo __get, oras. Você abre a porta para o retorno da variável a ainda quer que o valor esteja inacessível?</p>
<p>Agora minha dúvida final: se (no inglês)  uma classe contém methods e properties, por que cargas d&#8217;água &#8220;uma property permite que você associe rotinas de acesso à um atributo da sua classe&#8221;? Oras, se property é propriedade, o que você está criando são métodos de acesso.</p>
<p>Quanto ao comentário do Mário (&#8221;Muito legal esse esquema de Property, precisa ser mais divulgado.&#8221;):<br />
Vide manual.  Está lá a pelo menos dois anos.</p>
<p>&#8220;Use the manual, Luke&#8221;.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mário Júnior</title>
		<link>http://arthurfurlan.org/blog/2007/05/08/utilizando-properties-em-php5/#comment-143</link>
		<dc:creator>Mário Júnior</dc:creator>
		<pubDate>Fri, 25 May 2007 11:46:59 +0000</pubDate>
		<guid isPermaLink="false">http://arthurfurlan.com.br/blog/2007-05-08/utilizando-properties-em-php5/#comment-143</guid>
		<description>Legal. Abandonei o php na versão 4.2 qnd resolvi programar somente OO e migrei para Java, e hj tb brinco com Ruby On Rails. Agora, vendo os grandes saltos de melhorias injetados no PHP 5 dá até vontade de voltar a brincar com o php... 

Muito legal esse esquema de Property, precisa ser mais divulgado.

Parabéns pelo artigo.
Abraços.</description>
		<content:encoded><![CDATA[<p>Legal. Abandonei o php na versão 4.2 qnd resolvi programar somente OO e migrei para Java, e hj tb brinco com Ruby On Rails. Agora, vendo os grandes saltos de melhorias injetados no PHP 5 dá até vontade de voltar a brincar com o php&#8230; </p>
<p>Muito legal esse esquema de Property, precisa ser mais divulgado.</p>
<p>Parabéns pelo artigo.<br />
Abraços.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
