Palavras-chave: PHP, Classes, Objetos, Reflection API

No PHP existem diversas formas de se descobrir informações a respeito de uma classe. Por exemplo, para saber quais os métodos oferecidos por uma classe, a função get_class_methods() é utilizada:

<?php
class Pessoa
{
    private $codigo;
    private $name;
    function __construct($codigo)
    {
        $this->codigo = $codigo;
    }

    function setName($name)
    {
        $this->name = $name;
    }
}

print_r(get_class_methods('Pessoa'));
?>

O PHP5 implementa uma API chamada Reflection. A Reflection API permite fazermos reflexão de objetos, ou seja, investigar sobre seus atributos, métodos e descobrir sua interface. A seguir, temos o mesmo código rescrito utilizando essa API:

<?php
class Pessoa
{
    private $codigo;
    private $name;
    function __construct($codigo)
    {
        $this->codigo = $codigo;
    }

    function setName($name)
    {
        $this->name = $name;
    }
}

$api = new ReflectionClass('Pessoa');
foreach($api->getMethods() as $method)
{
    echo $method->getName() . "<br>\\n";
}
?>