var_dump para classes e objetos do PHP

Artigo que apresenta a implementação de uma função PHP que permite realizar um dump em uma classe ou objeto, apresentando os atributos, constantes e métodos.

As funções var_dump, print_r e debug_zval_dump são úteis para destrinchar o conteúdo de uma variável em PHP, independente de seu tipo.

Porém, elas não mostram, por exemplo, os métodos de um objeto. Uma forma simples de se obter esta informação é utilizando o método export da classe Reflection.

Exemplo para obter as características da classe DirectoryIterator:

Reflection::export(new ReflectionClass('DirectoryIterator'));

Aqui fica um exemplo de função class_dump, usado para destrinchar uma classe ou objeto:

/**
 * Destrincha uma classe ou objeto, apresentando as
 * subclasses, interfaces, constantes, atributos e metodos.
 * @param string || object $class Nome da classe ou uma instancia
 * @return void
 */
function class_dump($class) {
    if (is_string($class)) { 
        try {
            $r = new ReflectionClass($class);
        } catch (ReflectionException $e) {
            trigger_error('Erro: '.$e->getMessage(), E_USER_ERROR);
        }
    } elseif (is_object($class)) { 
        try {
            $r = new ReflectionObject($class);
        } catch (ReflectionException $e) { 
            trigger_error('Erro: '.$e->getMessage(), E_USER_ERROR);
        }
    } else { 
        trigger_error('Classe invalida: '.$class, E_USER_ERROR);
    }
    Reflection::export($r);
}

0 comentários