Properties

$errors

$errors : array

A list of errors generated by the application.

Type

array

$_config

$_config : array

Runtime config

Type

array

$_configInitialized

$_configInitialized : boolean

Whether the config property has already been configured with defaults

Type

boolean

$_defaultConfig

$_defaultConfig : array

Default configuration

Type

array

$_outputFormat

$_outputFormat : string

The current output format.

Type

string

$_templates

$_templates : array

Templates used when generating trace or error strings. Can be global or indexed by the format value used in $_outputFormat.

Type

array

$_data

$_data : array

Holds current output data when outputFormat is false.

Type

array

Methods

setConfig()

setConfig(string|array  $key, mixed|null  $value = null, boolean  $merge = true) : $this

Sets the config.

Usage

Setting a specific value:

$this->setConfig('key', $value);

Setting a nested value:

$this->setConfig('some.nested.key', $value);

Updating multiple config settings at the same time:

$this->setConfig(['one' => 'value', 'another' => 'value']);

Parameters

string|array $key

The key to set, or a complete array of configs.

mixed|null $value

The value to set.

boolean $merge

Whether to recursively merge or overwrite existing config, defaults to true.

Throws

\Cake\Core\Exception\Exception

When trying to set a key that is invalid.

Returns

$this

getConfig()

getConfig(string|null  $key = null, mixed  $default = null) : mixed

Returns the config.

Usage

Reading the whole config:

$this->getConfig();

Reading a specific value:

$this->getConfig('key');

Reading a nested value:

$this->getConfig('some.nested.key');

Reading with default value:

$this->getConfig('some-key', 'default-value');

Parameters

string|null $key

The key to get or null for the whole config.

mixed $default

The return value when the key does not exist.

Returns

mixed —

Config value being read.

config()

config(string|array|null  $key = null, mixed|null  $value = null, boolean  $merge = true) : mixed

Gets/Sets the config.

Usage

Reading the whole config:

$this->config();

Reading a specific value:

$this->config('key');

Reading a nested value:

$this->config('some.nested.key');

Setting a specific value:

$this->config('key', $value);

Setting a nested value:

$this->config('some.nested.key', $value);

Updating multiple config settings at the same time:

$this->config(['one' => 'value', 'another' => 'value']);

Parameters

string|array|null $key

The key to get/set, or a complete array of configs.

mixed|null $value

The value to set.

boolean $merge

Whether to recursively merge or overwrite existing config, defaults to true.

Throws

\Cake\Core\Exception\Exception

When trying to set a key that is invalid.

Returns

mixed —

Config value being read, or the object itself on write operations.

configShallow()

configShallow(string|array  $key, mixed|null  $value = null) : $this

Merge provided config with existing config. Unlike `config()` which does a recursive merge for nested keys, this method does a simple merge.

Setting a specific value:

$this->configShallow('key', $value);

Setting a nested value:

$this->configShallow('some.nested.key', $value);

Updating multiple config settings at the same time:

$this->configShallow(['one' => 'value', 'another' => 'value']);

Parameters

string|array $key

The key to set, or a complete array of configs.

mixed|null $value

The value to set.

Returns

$this

__construct()

__construct() 

Constructor.

getInstance()

getInstance(string|null  $class = null) : \Cake\Error\Debugger

Returns a reference to the Debugger singleton object instance.

Parameters

string|null $class

Class name.

Returns

\Cake\Error\Debugger

configInstance()

configInstance(string|array|null  $key = null, mixed|null  $value = null, boolean  $merge = true) : mixed

Read or write configuration options for the Debugger instance.

Parameters

string|array|null $key

The key to get/set, or a complete array of configs.

mixed|null $value

The value to set.

boolean $merge

Whether to recursively merge or overwrite existing config, defaults to true.

Throws

\Cake\Core\Exception\Exception

When trying to set a key that is invalid.

Returns

mixed —

Config value being read, or the object itself on write operations.

outputMask()

outputMask() : array

Reads the current output masking.

Returns

array

setOutputMask()

setOutputMask(array  $value, boolean  $merge = true) : void

Sets configurable masking of debugger output by property name and array key names.

Example

Debugger::setOutputMask(['password' => '[*****]');

Parameters

array $value

An array where keys are replaced by their values in output.

boolean $merge

Whether to recursively merge or overwrite existing config, defaults to true.

dump()

dump(mixed  $var, integer  $depth = 3) : void

Recursively formats and outputs the contents of the supplied variable.

Parameters

mixed $var

The variable to dump.

integer $depth

The depth to output to. Defaults to 3.

log()

log(mixed  $var, integer|string  $level = 'debug', integer  $depth = 3) : void

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

mixed $var

Variable or content to log.

integer|string $level

Type of log to use. Defaults to 'debug'.

integer $depth

The depth to output to. Defaults to 3.

trace()

trace(array  $options = array()) : mixed

Outputs a stack trace based on the supplied options.

Options

  • depth - The number of stack frames to return. Defaults to 999
  • format - 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

Format for outputting stack trace.

Returns

mixed —

Formatted stack trace.

formatTrace()

formatTrace(array|\Exception  $backtrace, array  $options = array()) : mixed

Formats a stack trace based on the supplied options.

Options

  • depth - The number of stack frames to return. Defaults to 999
  • format - 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|\Exception $backtrace

Trace as array or an exception object.

array $options

Format for outputting stack trace.

Returns

mixed —

Formatted stack trace.

trimPath()

trimPath(string  $path) : string

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

string —

Normalized path

excerpt()

excerpt(string  $file, integer  $line, integer  $context = 2) : array

Grabs an excerpt from a file and highlights a given line of code.

Usage:

Debugger::excerpt('/path/to/file', 100, 4);

The above would return an array of 8 items. The 4th item would be the provided line, and would be wrapped in <span class="code-highlight"></span>. All of the lines are processed with highlight_string() as well, so they have basic PHP syntax highlighting applied.

Parameters

string $file

Absolute path to a PHP file.

integer $line

Line number to highlight.

integer $context

Number of lines of context to extract above and below $line.

Returns

array —

Set of lines highlighted

exportVar()

exportVar(mixed  $var, integer  $depth = 3) : string

Converts a variable to a string for debug output.

Note: The following keys will have their contents replaced with *****:

  • password
  • login
  • host
  • database
  • port
  • prefix
  • schema

This is done to protect database credentials, which could be accidentally shown in an error message if CakePHP is deployed in development mode.

Parameters

mixed $var

Variable to convert.

integer $depth

The depth to output to. Defaults to 3.

Returns

string —

Variable as a formatted string

getOutputFormat()

getOutputFormat() : string

Get the output format for Debugger error rendering.

Returns

string —

Returns the current format when getting.

setOutputFormat()

setOutputFormat(string  $format) : void

Set the output format for Debugger error rendering.

Parameters

string $format

The format you want errors to be output as.

Throws

\InvalidArgumentException

When choosing a format that doesn't exist.

outputAs()

outputAs(string|null  $format = null) : string|null

Get/Set the output format for Debugger error rendering.

Parameters

string|null $format

The format you want errors to be output as. Leave null to get the current format.

Throws

\InvalidArgumentException

When choosing a format that doesn't exist.

Returns

string|null —

Returns null when setting. Returns the current format when getting.

addFormat()

addFormat(string  $format, array  $strings) : array

Add an output format or update a format in Debugger.

Debugger::addFormat('custom', $data);

Where $data is an array of strings that use Text::insert() variable replacement. The template vars should be in a {:id} style. An error formatter can have the following keys:

  • 'error' - Used for the container for the error message. Gets the following template variables: id, error, code, description, path, line, links, info
  • 'info' - A combination of code, context and trace. Will be set with the contents of the other template keys.
  • 'trace' - The container for a stack trace. Gets the following template variables: trace
  • 'context' - The container element for the context variables. Gets the following templates: id, context
  • 'links' - An array of HTML links that are used for creating links to other resources. Typically this is used to create javascript links to open other sections. Link keys, are: code, context, help. See the js output format for an example.
  • 'traceLine' - Used for creating lines in the stacktrace. Gets the following template variables: reference, path, line

Alternatively if you want to use a custom callback to do all the formatting, you can use the callback key, and provide a callable:

Debugger::addFormat('custom', ['callback' => [$foo, 'outputError']];

The callback can expect two parameters. The first is an array of all the error data. The second contains the formatted strings generated using the other template strings. Keys like info, links, code, context and trace will be present depending on the other templates in the format type.

Parameters

string $format

Format to use, including 'js' for JavaScript-enhanced HTML, 'html' for straight HTML output, or 'txt' for unformatted text.

array $strings

Template strings, or a callback to be used for the output format.

Returns

array —

The resulting format string set.

outputError()

outputError(array  $data) : void

Takes a processed array of data from an error and displays it in the chosen format.

Parameters

array $data

Data to output.

getType()

getType(mixed  $var) : string

Get the type of the given variable. Will return the class name for objects.

Parameters

mixed $var

The variable to get the type of.

Returns

string —

The type of variable.

printVar()

printVar(mixed  $var, array  $location = array(), boolean|null  $showHtml = null) : void

Prints out debug information about given variable.

Parameters

mixed $var

Variable to show debug information for.

array $location

If contains keys "file" and "line" their values will be used to show location info.

boolean|null $showHtml

If set to true, the method prints the debug data in a browser-friendly way.

checkSecurityKeys()

checkSecurityKeys() : void

Verifies that the application's salt and cipher seed value has been changed from the default value.

_configRead()

_configRead(string|null  $key) : mixed

Reads a config key.

Parameters

string|null $key

Key to read.

Returns

mixed

_configWrite()

_configWrite(string|array  $key, mixed  $value, boolean|string  $merge = false) : void

Writes a config key.

Parameters

string|array $key

Key to write to.

mixed $value

Value to write.

boolean|string $merge

True to merge recursively, 'shallow' for simple merge, false to overwrite, defaults to false.

Throws

\Cake\Core\Exception\Exception

if attempting to clobber existing config

_configDelete()

_configDelete(string  $key) : void

Deletes a single config key.

Parameters

string $key

Key to delete.

Throws

\Cake\Core\Exception\Exception

if attempting to clobber existing config

_highlight()

_highlight(string  $str) : string

Wraps the highlight_string function in case the server API does not implement the function as it is the case of the HipHop interpreter

Parameters

string $str

The string to convert.

Returns

string

_export()

_export(mixed  $var, integer  $depth, integer  $indent) : string

Protected export function used to keep track of indentation and recursion.

Parameters

mixed $var

The variable to dump.

integer $depth

The remaining depth.

integer $indent

The current indentation level.

Returns

string —

The dumped variable.

_array()

_array(array  $var, integer  $depth, integer  $indent) : string

Export an array type object. Filters out keys used in datasource configuration.

The following keys are replaced with ***'s

  • password
  • login
  • host
  • database
  • port
  • prefix
  • schema

Parameters

array $var

The array to export.

integer $depth

The current depth, used for recursion tracking.

integer $indent

The current indentation level.

Returns

string —

Exported array.

_object()

_object(object  $var, integer  $depth, integer  $indent) : string

Handles object to string conversion.

Parameters

object $var

Object to convert.

integer $depth

The current depth, used for tracking recursion.

integer $indent

The current indentation level.

Returns

string