/** * A var_dump function optimized for Flow's object structures * * @param mixed $variable The variable to display a dump of * @param string $title optional custom title for the debug output * @param boolean $return if TRUE, the dump is returned for displaying it embedded in custom HTML. If FALSE (default), the variable dump is directly displayed. * @param boolean $plaintext If TRUE, the dump is in plain text, if FALSE the debug output is in HTML format. If not specified, the mode is guessed from FLOW_SAPITYPE * @return void|string if $return is TRUE, the variable dump is returned. By default, the dump is directly displayed, and nothing is returned. * @api */ function var_dump($variable, $title = null, $return = false, $plaintext = null) { if ($plaintext === null) { $plaintext = FLOW_SAPITYPE === 'CLI'; $ansiColors = $plaintext && DIRECTORY_SEPARATOR === '/'; } else { $ansiColors = false; } if ($title === null) { $title = 'Flow Variable Dump'; } if ($ansiColors) { $title = "[1m" . $title . "[0m"; } Debugger::clearState(); if (!$plaintext && Debugger::$stylesheetEchoed === false) { echo '<style type="text/css">' . file_get_contents('resource://Neos.Flow/Public/Error/Debugger.css') . '</style>'; Debugger::$stylesheetEchoed = true; } if ($plaintext) { $output = $title . chr(10) . Debugger::renderDump($variable, 0, true, $ansiColors) . chr(10) . chr(10); } else { $output = ' <div class="Flow-Error-Debugger-VarDump ' . ($return ? 'Flow-Error-Debugger-VarDump-Inline' : 'Flow-Error-Debugger-VarDump-Floating') . '"> <div class="Flow-Error-Debugger-VarDump-Top"> ' . htmlspecialchars($title) . ' </div> <div class="Flow-Error-Debugger-VarDump-Center"> <pre dir="ltr">' . Debugger::renderDump($variable, 0, false, false) . '</pre> </div> </div> '; } if ($return === true) { return $output; } else { echo $output; } }