Skip to content

Instantly share code, notes, and snippets.

@strikeout
Created May 27, 2016 14:14
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save strikeout/c65f02ea59a2722734b461fe1074a6b3 to your computer and use it in GitHub Desktop.
Save strikeout/c65f02ea59a2722734b461fe1074a6b3 to your computer and use it in GitHub Desktop.
dmp.php
<?
/**
* Debug helper function. This is a wrapper for var_dump() that adds
* the <pre /> tags, cleans up newlines and indents, and runs
* htmlentities() before output.
*
* @param mixed $var The variable to dump.
* @param string $label OPTIONAL Label to prepend to output.
* @param bool $echo OPTIONAL Echo output if true.
* @return string
*/
public static function dmp($var, $label = null, $echo = true)
{
// format the label
$label = ($label===null) ? '' : rtrim($label) . ' ';
// var_dump the variable into a buffer and keep the output
ob_start();
var_dump($var);
$output = ob_get_clean();
// neaten the newlines and indents
$output = preg_replace("/\]\=\>\n(\s+)/m", "] => ", $output);
if (static::getSapi() == 'cli') {
$output = PHP_EOL . $label
. PHP_EOL . $output
. PHP_EOL;
} else {
if (null !== static::$escaper) {
$output = static::$escaper->escapeHtml($output);
} elseif (!extension_loaded('xdebug')) {
$output = static::getEscaper()->escapeHtml($output);
}
$output = '<pre>'
. $label
. $output
. '</pre>';
}
if ($echo) {
echo $output;
}
return $output;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment