PHP: Descobrir métodos e atributos de uma classe (Reflection)

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";
}
?>
This entry was posted in PHP. Bookmark the permalink.

3 Responses to PHP: Descobrir métodos e atributos de uma classe (Reflection)

  1. Pablo, parabéns pelo artigo. Esta é uma informação importante quando se trabalha em grupo, ou quando se usa uma classe disponível na net.

  2. Valeu, tava precisando entender isso, você foi bem claro.

  3. Zona Ponta says:

    Muito obrigado, me ajudou bastante com esta informação. Valeu

Leave a Reply

Your email address will not be published. Required fields are marked *