Archive

Posts Tagged ‘reflection’

php5minutes 8 – Reflection – Para que serve esse recurso?

April 18th, 2010 8 comments
Rating 4.60 out of 5
[?]

Começo hoje uma nova seria de podcasts do php5minutes e dessa vez o assunto é reflection(http://en.wikipedia.org/wiki/Reflection_(computer_science)).

Primeiro vamos a definição de reflection e minha interpretação é:

Reflection é a habilitade de uma classe olhar para si, internamente(assim como um humano reflete sobre ele, suas atitude, suas qualidades e seus relacionamentos), ou seja, quando uma linguagem implementa reflection, significa que uma instancia de um objecto pode falar sobre ele para você, respondendo pergunta como, quem ele é, o que ele faz e o que ele sabe.

  1. O que eu sou?
  2. O que eu faço?
  3. O que eu sei?

E assim, a reflexão de um objecto permite que ele se observe, como nós olhando em um espelho. E dai vem o nome do recurso. Tão elucidativo quanto a explicação da propriedade bubões em flex. e outras linguagens(quem conhece a propriedade sabe do que estou falando).

A época em que comecei a me interessar pro reflexão me leva aos tempos em que programava em Borland Delphi, ou como queiram os puristas, Object Pascal.

Usar RTTI – Runtime Type Information(informação de tipos em tempo de execução) havia se tornado uma obsessão para mim na época e acho que dai vem a paixão pelo assunto.

Podemos fazer com que um código seja muito mais inteligente ao usarmos a habilidade que ele mesmo tem em se olhar e se “auto produzir”.

Talvez isso tenha a ver com meus fantasmas de programação, mas isso deixa pra um outro post.

Acho que aqui termina minhas reflexões pessoais para entrar para o assunto de código e finalizo os parágrafos emos com a declaração: ” Imaginação é mais importante que conhecimento(Albert Einstein), logo, não adianta saber muito sobre algo e não saber refletir isso em toda a concepção da palavra reflexão.”

Pronto, acabou o emismo(sic).

Vamos abordar as pergunta que uma linguagem que implementa reflexão é capaz de responder.

A primeira – O que eu sou? – é quando uma instância é capaz de responder qual o seu tipo.

 	class MeuObjeto{}
	$instancia = new MeuObjeto();
// ai perguntamos: O que é você e a resposta é -Sou uma instancia de classe do tipo "MeuObjeto".

Ainda não vou me alongar de que tipo de ganhos esse tipo de informação traz, mas creia-me, isso vale ouro.

Continue lendo o php5minutes 8 – Reflection – Para que serve esse Recurso?

Categories: php, php5minutes Tags: , ,