BackTrace Class Reference

List of all members.

Public Member Functions

 __construct (array $aStack=array())
 explain ()
 getAll ()
 getArguments ()
 getClass ()
 getCurrent ()
 getFile ($bOnlyName=false)
 getFunction ()
 getLevel ()
 getLine ()
 getScope ()
 getType ()
 levelBottom ()
 levelDown ($iDepth=1, $bTry=false)
 levelTop ()
 levelUp ($iDepth=1, $bTry=false)
 setLevel ($iLevel)

Public Attributes

const SCOPE_FILE = "file"
const SCOPE_FUNCTION = "function"
const SCOPE_METHOD = "->"
const SCOPE_STATIC = "::"

Private Attributes

 $aCurrent = array()
 $aStack = array()
 $iLevel = 0


Detailed Description

Fornece dados da pilha de execução.

Supplies execution stack data.

Manipula e fornece acesso aos dados de uma determinada pilha de execução. Por meio de métodos é possível caminhar entre os níveis e capturar informações respectivas a cada um deles.

Author:
Renan de Lima Barbosa <renandelima@gmail.com>

Definition at line 18 of file BackTrace.php.


Constructor & Destructor Documentation

__construct ( array $  aStack = array()  ) 

Captura dados da pilha de execução.

Captures execution stack data.

Os dados da pilha de execução são capturados e o ponteiro é movido para o nível imediatamente inferior ao ponto de chamada deste construtor caso a pilha não seja informado pelo parâmetro, caso contrário a pilha informada é utilizada.

Parameters:
string[][] $aStack
Returns:
void

Definition at line 129 of file BackTrace.php.

References $aStack, and levelTop().

00130     {
00131         $this->aStack = count( $aStack ) === 0 ? debug_backtrace() : $aStack;
00132         $this->levelTop();
00133     }


Member Function Documentation

explain (  ) 

Gera HTML com detalhes do rastreamento a partir do nível atual.

Creates HTML with detail of the trace.

Captura todos os dados de um rastreamento a partir do nível atual da pilha.

Returns:
string
See also:
BackTraceExplain::perform()

Definition at line 146 of file BackTrace.php.

References BackTraceExplain::perform().

00147     {
00148         return BackTraceExplain::perform( $this );
00149     }

getAll (  ) 

Obtém todos os dados de todos os níveis.

Gets all data of all levels.

Retorna os dados contidos na pilha construída pelo construtor dessa classe. O formato é idêntico ao retornado pela função debug_backtrace().

Returns:
string[]

Definition at line 162 of file BackTrace.php.

00163     {
00164         return $this->aStack;
00165     }

getArguments (  ) 

Obtém os argumentos de entrada do nível atual.

Captures input arguments of current level.

Se o escopo do nível corrente for uma função ou método retorna uma lista com os parâmetros de chamada. Caso contrário retorna uma lista vazia.

Returns:
string[]

Definition at line 177 of file BackTrace.php.

00178     {
00179         if ( array_key_exists( "args", $this->aCurrent ) === false )
00180         {
00181             return array();
00182         }
00183         return (array) $this->aCurrent["args"];
00184     }

getClass (  ) 

Obtém o nome da classe do nível atual.

Captures class name of current level.

Se o escopo do nível atual for um método ou método estático o nome da classe é retornado. Caso contrário retornará um texto vazio. Para verificar se o escopo atual é um método, método estático, função ou arquivo utilize BackTrace::getScope().

Returns:
string

Definition at line 198 of file BackTrace.php.

00199     {
00200         if ( array_key_exists( "class", $this->aCurrent ) === false )
00201         {
00202             return "";
00203         }
00204         return (string) $this->aCurrent["class"];
00205     }

getCurrent (  ) 

Obtém todos os dados do nível corrente.

Captures all data of current level.

Retorna os dados do nível corrente da pilha de execução. O formato é igual a um item da pilha retornada pela função debug_backtrace().

Returns:
string[]

Definition at line 217 of file BackTrace.php.

00218     {
00219         return $this->aCurrent;
00220     }

getFile ( bOnlyName = false  ) 

Obtém o nome do arquivo do nível corrente.

Captures file of current level.

Retorna o caminho completo contendo o nome do arquivo do nível atual.

Parameters:
boolean $bOnlyName captura somente o nome do arquivo
Returns:
string

Definition at line 232 of file BackTrace.php.

00233     {
00234         if ( array_key_exists( "file", $this->aCurrent ) === false )
00235         {
00236             return "";
00237         }
00238         if ( $bOnlyName === true )
00239         {
00240             return basename( (string) $this->aCurrent["file"] );
00241         }
00242         return (string) $this->aCurrent["file"];
00243     }

getFunction (  ) 

Obtém o nome da função do nível corrente.

Captures function name of current level.

Se o escopo do nível atual for uma função, método ou método estático o nome desse é retornado. Caso contrário retornará um texto vazio. Para verificar se o escopo atual é uma função, método, método estático ou arquivo utilize BackTrace::getScope().

Returns:
string

Definition at line 257 of file BackTrace.php.

Referenced by getScope().

00258     {
00259         if ( array_key_exists( "function", $this->aCurrent ) === false )
00260         {
00261             return "";
00262         }
00263         return (string) $this->aCurrent["function"];
00264     }

getLevel (  ) 

Obtém a posição do nível atual do nível corrente.

Captures position of current level.

Returns:
integer

Definition at line 273 of file BackTrace.php.

00274     {
00275         return $this->iLevel;
00276     }

getLine (  ) 

Obtém número da linha do arquivo do nível corrente.

Captures file line name of current level.

Caso o número da linha não esteja disponível o valor 0 é retornado.

Returns:
integer

Definition at line 287 of file BackTrace.php.

00288     {
00289         if ( array_key_exists( "line", $this->aCurrent ) === false )
00290         {
00291             return 0;
00292         }
00293         return (integer) $this->aCurrent["line"];
00294     }

getScope (  ) 

Obtém o escopo do nível corrente.

Captures scope of current level.

O tipo de escopo define o ambiente do nível atual, ele pode ser função, método (função de classe), estático (método estático) ou arquivo. Esses tipos estão definidos nessa classe pelas constantes com prefixo "SCOPE_". Os possíveis valores retornados são: BackTrace::SCOPE_FILE, BackTrace::SCOPE_FUNCTION, BackTrace::SCOPE_METHOD e BackTrace::SCOPE_STATIC. Os escopos estão definidos de forma parecida com o índice "type" da lista retornada pela função debug_backtrace(), porém existe diferenciação entre o escopo função e arquivo. Para obter o mesmo comportamento desse índice "type" utilize BackTrace::getType().

Returns:
string

Definition at line 314 of file BackTrace.php.

References getFunction(), and getType().

00315     {
00316         $sType = $this->getType();
00317         if ( $sType === "" )
00318         {
00319             $sType = $this->getFunction() === "" ? self::SCOPE_FILE : self::SCOPE_FUNCTION;
00320         }
00321         return $sType;
00322     }

getType (  ) 

Obtém o tipo do nível corrente.

Captures type of current level.

O tipo de escopo define o ambiente do nível atual, ele pode ser método (função de classe), estático (método estático) ou nenhum. Para obter um maior detalhamento do escopo utilize BackTrace::getScope().

Returns:
string

Definition at line 335 of file BackTrace.php.

Referenced by getScope().

00336     {
00337         if ( array_key_exists( "type", $this->aCurrent ) === false )
00338         {
00339             return "";
00340         }
00341         return (string) $this->aCurrent["type"];
00342     }

levelBottom (  ) 

Move o ponteiro de rastreamento para o nível mais baixo.

Moves trace pointer to last level.

Returns:
void

Definition at line 351 of file BackTrace.php.

References setLevel().

Referenced by levelDown(), and levelUp().

00352     {
00353         $this->setLevel( count( $this->aStack ) - 1 );
00354     }

levelDown ( iDepth = 1,
bTry = false 
)

Move o ponteiro de rastreamento para baixo.

Moves trace pointer to down.

Quando o valor retronado é verdadeiro a classe passa a manipular as informações do nível imediatamente inferior ao atual. Caso contrário, quando o retorno é falso, o ponteiro não é alterado. A quantidade de níveis a ser abaixado é por padrão o valor 1, porém ele pode ser redefinido pelo primeiro parâmetro. Caso não seja possível descer a quantidade de níveis desejado o segundo parâmetro, que por padrão é falso, indica se é para descer até onde for possível.

Parameters:
integer $iDepth
boolean $bTry caso o nível não exista tentar até onde for possível
Returns:
boolean

Definition at line 373 of file BackTrace.php.

References levelBottom(), levelTop(), and setLevel().

00374     {
00375         $iDepth = (integer) $iDepth;
00376         $bReturn = $this->setLevel( $this->iLevel + $iDepth );
00377         if ( $bReturn === false && $bTry === true )
00378         {
00379             $iDepth > 0 ? $this->levelTop() : $this->levelBottom();
00380         }
00381         return $bReturn;
00382     }

levelTop (  ) 

Move o ponteiro de rastreamento para o nível mais alto.

Moves trace pointer to first level.

Returns:
void

Definition at line 391 of file BackTrace.php.

References setLevel().

Referenced by __construct(), levelDown(), and levelUp().

00392     {
00393         $this->setLevel( 0 );
00394     }

levelUp ( iDepth = 1,
bTry = false 
)

Move o ponteiro de rastreamento para cima.

Moves trace pointer to up.

Quando o valor retronado é verdadeiro a classe passa a manipular as informações do nível imediatamente superior ao atual. Caso contrário, quando o retorno é falso, o ponteiro não é alterado. A quantidade de níveis a ser subido é por padrão o valor 1, porém ele pode ser redefinido pelo primeiro parâmetro. Caso não seja possível subir a quantidade de níveis desejado o segundo parâmetro, que por padrão é falso, indica se é para subir até onde for possível.

Parameters:
integer $iDepth
boolean $bTry caso o nível não exista tentar até onde for possível
Returns:
boolean

Definition at line 413 of file BackTrace.php.

References levelBottom(), levelTop(), and setLevel().

00414     {
00415         $iDepth = (integer) $iDepth;
00416         $bReturn = $this->setLevel( $this->iLevel - $iDepth );
00417         if ( $bReturn === false && $bTry === true )
00418         {
00419             $iDepth > 0 ? $this->levelBottom() : $this->levelTop();
00420         }
00421         return $bReturn;
00422     }

setLevel ( iLevel  ) 

Move o ponteiro de rastreamento.

Moves trace pointer.

Quando o valor retronado é verdadeiro a classe passa a manipular as informações do nível indicado pelo parâmetro. Caso contrário, quando o retorno é falso, o ponteiro não é alterado.

Parameters:
integer $iLevel nível do rastreamento
Returns:
boolean

Definition at line 436 of file BackTrace.php.

References $iLevel.

Referenced by levelBottom(), levelDown(), levelTop(), and levelUp().

00437     {
00438         $iLevel = (integer) $iLevel;
00439         if ( array_key_exists( $iLevel, $this->aStack ) === true )
00440         {
00441             $this->iLevel = $iLevel;
00442         }
00443         $this->aCurrent = &$this->aStack[$this->iLevel];
00444         return $this->iLevel === $iLevel;
00445     }


Member Data Documentation

$aCurrent = array() [private]

Contém os dados do nível corrente.

Contains data of current level.

Ponteiro para um item da pilha BackTrace::$aStack. Os métodos BackTrace::levelDown() e BackTrace::levelUp() são responsáveis por manipular este atributo.

&string[]

Definition at line 89 of file BackTrace.php.

$aStack = array() [private]

Contém os dados de todos os níveis.

Contains data of all levels.

Possui uma pilha com os dados de todos os níveis do rastreamento. O conteúdo deste atributo é o mesmo retornado pela função debug_backtrace().

string[][]

Definition at line 102 of file BackTrace.php.

Referenced by __construct().

$iLevel = 0 [private]

Indicador do nível atual.

Pointer of current level.

Contém o índice do escopo atual. O valor desta variável é um índice de BackTrace::$aStack.

Integer

Definition at line 114 of file BackTrace.php.

Referenced by setLevel().

const SCOPE_FILE = "file"

Indica que o escopo é de arquivo.

Indicates the scope is an file.

É um dos possíveis valores retornado pelo método BackTrace::getScope(). Indica que o ponteiro de execução faz referência à uma instrução cujo escopo é um arquivo.

string

Definition at line 31 of file BackTrace.php.

Referenced by BackTraceExplain::fetchCall().

const SCOPE_FUNCTION = "function"

Indica que o escopo é de função.

Indicates the scope is an function.

É um dos possíveis valores retornado pelo método BackTrace::getScope(). Indica que o ponteiro de execução faz referência à uma instrução localizada em uma função. Para verificar se o escopo é uma função de classe utilize as constantes BackTrace::SCOPE_METHOD e BackTrace::SCOPE_STATIC.

string

Definition at line 46 of file BackTrace.php.

const SCOPE_METHOD = "->"

Indica que o escopo é de método.

Indicates the scope is an method.

É um dos possíveis valores retornado pelo método BackTrace::getScope(). Indica que o ponteiro de execução faz referência à uma instrução localizada em um método. Para verificar se o escopo é um método estático utilize a constante BackTrace::SCOPE_STATIC.

string

Definition at line 61 of file BackTrace.php.

const SCOPE_STATIC = "::"

Indica que o escopo é de método estático.

Indicates the scope is an static method.

É um dos possíveis valores retornado pelo método BackTrace::getScope(). Indica que o ponteiro de execução faz referência à uma instrução localizada em um método estático. Para verificar se o escopo é um método não estático utilize a constante BackTrace::SCOPE_METHOD.

string

Definition at line 76 of file BackTrace.php.


The documentation for this class was generated from the following file:

Generated on Thu Feb 3 03:55:02 2011 for CodeToDiagram by  doxygen 1.5.9