Class Debugger
Provide custom logging and error handling.
Debugger overrides PHP's default error handling to provide stack traces and enhanced logging
- Object
- Debugger
Link: http://book.cakephp.org/1.3/en/The-Manual/Common-Tasks-With-CakePHP/Debugging.html#Using-the-Debugger-Class
Copyright: Copyright 2005-2012, Cake Software Foundation, Inc. (http://cakefoundation.org)
License: License (http://www.opensource.org/licenses/mit-license.php)
Location: debugger.php
Properties summary
-
$_data
publicstring
Holds current output data when outputFormat is false. -
$_outputFormat
publicstring
The current output format. -
$_templates
publicstring
Templates used when generating trace or error strings. Can be global or indexed by the format value used in $_outputFormat.
-
$errors
publicarray
A list of errors generated by the application. -
$helpPath
publicstring
Contains the base URL for error code documentation.
Method Summary
-
__construct() public
Constructor. -
__object() public
Handles object to string conversion. -
_output() public
Renders error messages -
checkSecurityKeys() public
Verifies that the application's salt and cipher seed value has been changed from the default value. -
dump() public
Formats and outputs the contents of the supplied variable. -
excerpt() public
Grabs an excerpt from a file and highlights a given line of code -
exportVar() public
Converts a variable to a string for debug output. -
getInstance() public
Returns a reference to the Debugger singleton object instance. -
handleError() public
Overrides PHP's default error handling. -
invoke() public
Invokes the given debugger object as the current error handler, taking over control from the previous handler in a stack-like hierarchy.
-
log() public
Creates an entry in the log file. The log entry will contain a stack trace from where it was called. as well as export the variable using exportVar. By default the log is written to the debug log.
-
output() public
Switches output format, updates format strings -
trace() public
Outputs a stack trace based on the supplied options. -
trimPath() public
Shortens file paths by replacing the application base path with 'APP', and the CakePHP core path with 'CORE'.
Method Detail
__object() public ¶
__object( string $var )
Handles object to string conversion.
Parameters
- string $var
- Object to convert
Returns
See
_output() public ¶
_output( array $data = array() )
Renders error messages
Parameters
- array $data optional array()
- Data about the current error
checkSecurityKeys() public ¶
checkSecurityKeys( )
Verifies that the application's salt and cipher seed value has been changed from the default value.
dump() public ¶
dump( $var )
Formats and outputs the contents of the supplied variable.
Parameters
- $var
- the variable to dump
See
Link
excerpt() public ¶
excerpt( string $file , integer $line , integer $context = 2 )
Grabs an excerpt from a file and highlights a given line of code
Parameters
- string $file
- Absolute path to a PHP file
- integer $line
- Line number to highlight
- integer $context optional 2
- Number of lines of context to extract above and below $line
Returns
Set of lines highlighted
Link
exportVar() public ¶
exportVar( string $var , $recursion = 0 )
Converts a variable to a string for debug output.
Parameters
- string $var
- Variable to convert
- $recursion optional 0
Returns
Variable as a formatted string
Link
getInstance() public ¶
getInstance( $class = null )
Returns a reference to the Debugger singleton object instance.
Returns
handleError() public ¶
handleError( integer $code , string $description , string $file = null , integer $line = null , array $context = null )
Overrides PHP's default error handling.
Parameters
- integer $code
- Code of error
- string $description
- Error description
- string $file optional null
- File on which error occurred
- integer $line optional null
- Line that triggered the error
- array $context optional null
- Context
Returns
true if error was handled
invoke() public ¶
invoke( object $debugger )
Invokes the given debugger object as the current error handler, taking over control from the previous handler in a stack-like hierarchy.
Parameters
- object $debugger
- A reference to the Debugger object
Link
log() public ¶
log( $var , $level = LOG_DEBUG )
Creates an entry in the log file. The log entry will contain a stack trace from where it was called. as well as export the variable using exportVar. By default the log is written to the debug log.
Parameters
- $var
- Variable or content to log
- $level optional LOG_DEBUG
- type of log to use. Defaults to LOG_DEBUG
Link
Overrides
output() public ¶
output( string $format = null , array $strings = array() )
Switches output format, updates format strings
Parameters
- string $format optional null
Format to use, including 'js' for JavaScript-enhanced HTML, 'html' for straight HTML output, or 'txt' for unformatted text.
- array $strings optional array()
- Template strings to be used for the output format.
trace() public ¶
trace( array $options = array() )
Outputs a stack trace based on the supplied options.
Options
depth
- The number of stack frames to return. Defaults to 999format
- The format you want the return. Defaults to the currently selected format. If format is 'array' or 'points' the return will be an array.args
- Should arguments for functions be shown? If true, the arguments for each method call will be displayed.start
- The stack frame to start generating a trace from. Defaults to 0
Parameters
- array $options optional array()
- Format for outputting stack trace
Returns
Formatted stack trace
Link
trimPath() public ¶
trimPath( string $path )
Shortens file paths by replacing the application base path with 'APP', and the CakePHP core path with 'CORE'.
Parameters
- string $path
- Path to shorten
Returns
Normalized path
Methods inherited from Object
Object() public ¶
Object( )
A hack to support __construct() on PHP 4 Hint: descendant classes have no PHP4 class_name() constructors, so this constructor gets called first and calls the top-layer __construct() which (if present) should call parent::__construct()
Returns
__openPersistent() public ¶
__openPersistent( string $name , string $type = null )
Open the persistent class file for reading Used by Object::_persist()
Parameters
- string $name
- Name of persisted class
- string $type optional null
- Type of persistance (e.g: registry)
_persist() public ¶
_persist( string $name , string $return , $object , $type = null )
Checks for a persistent class file, if found file is opened and true returned If file is not found a file is created and false returned If used in other locations of the model you should choose a unique name for the persistent file There are many uses for this method, see manual for examples
Parameters
- string $name
- name of the class to persist
- string $return
- $object the object to persist
- $object
- $type optional null
Returns
Success
_savePersistent() public ¶
_savePersistent( string $name , object $object )
You should choose a unique name for the persistent file
There are many uses for this method, see manual for examples
Parameters
- string $name
- name used for object to cache
- object $object
- the object to persist
Returns
true on save, throws error if file can not be created
_set() public ¶
_set( array $properties = array() )
Allows setting of multiple properties of the object in a single line of code. Will only set properties that are part of a class declaration.
Parameters
- array $properties optional array()
- An associative array containing properties and corresponding values.
_stop() public ¶
_stop( $status = 0 )
Stop execution of the current script. Wraps exit() making testing easier.
Parameters
- $status optional 0
- http://php.net/exit for values
cakeError() public ¶
cakeError( string $method , array $messages = array() )
Used to report user friendly errors. If there is a file app/error.php or app/app_error.php this file will be loaded error.php is the AppError class it should extend ErrorHandler class.
Parameters
- string $method
- Method to be called in the error class (AppError or ErrorHandler classes)
- array $messages optional array()
- Message that is to be displayed by the error class
Returns
message
dispatchMethod() public ¶
dispatchMethod( string $method , array $params = array() )
Calls a method on this object with the given parameters. Provides an OO wrapper
for call_user_func_array
Parameters
- string $method
- Name of the method to call
- array $params optional array()
- Parameter list to use when calling $method
Returns
Returns the result of the method call
requestAction() public ¶
requestAction( mixed $url , array $extra = array() )
Calls a controller's method from any location. Can be used to connect controllers together or tie plugins into a main application. requestAction can be used to return rendered views or fetch the return value from controller actions.
Parameters
- mixed $url
- String or array-based url.
- array $extra optional array()
- if array includes the key "return" it sets the AutoRender to true.
Returns
Boolean true or false on success/failure, or contents of rendered action if 'return' is set in $extra.
toString() public ¶
toString( )
Object-to-string conversion. Each class can override this method as necessary.
Returns
The name of this class
Properties detail
$_templates ¶
Templates used when generating trace or error strings. Can be global or indexed by the format value used in $_outputFormat.
array( 'log' => array( 'trace' => '{:reference} - {:path}, line {:line}', 'error' => "{:error} ({:code}): {:description} in [{:file}, line {:line}]" ), 'js' => array( 'error' => '', 'info' => '', 'trace' => '<pre class="stack-trace">{:trace}</pre>', 'code' => '', 'context' => '', 'links' => array() ), 'html' => array( 'trace' => '<pre class="cake-debug trace"><b>Trace</b> <p>{:trace}</p></pre>', 'context' => '<pre class="cake-debug context"><b>Context</b> <p>{:context}</p></pre>' ), 'txt' => array( 'error' => "{:error}: {:code} :: {:description} on line {:line} of {:path}\n{:info}", 'context' => "Context:\n{:context}\n", 'trace' => "Trace:\n{:trace}\n", 'code' => '', 'info' => '' ), 'base' => array( 'traceLine' => '{:reference} - {:path}, line {:line}' ) )