public function Kint::export in Devel 4.x
Same name and namespace in other branches
- 8.3 src/Plugin/Devel/Dumper/Kint.php \Drupal\devel\Plugin\Devel\Dumper\Kint::export()
Returns a string representation of a variable.
Parameters
mixed $input: The variable to export.
string $name: (optional) The label to output before variable, defaults to NULL.
Return value
string String representation of a variable.
Overrides DevelDumperInterface::export
File
- src/
Plugin/ Devel/ Dumper/ Kint.php, line 48
Class
- Kint
- Provides a Kint dumper plugin.
Namespace
Drupal\devel\Plugin\Devel\DumperCode
public function export($input, $name = NULL) {
ob_start();
if ($name == '__ARGS__') {
call_user_func_array([
'Kint',
'dump',
], $input);
$name = NULL;
}
elseif ($name !== NULL) {
// In order to get the correct access path information returned from Kint
// we have to give a second parameter here. This is due to a fault in
// Kint::getSingleCall which returns no info when the number of arguments
// passed to Kint::dump does not match the number in the original call
// that invoked the export (such as dsm). However, this second parameter
// is just treated as the next variable to dump, it is not used as the
// label. So we give a dummy value that we can remove below.
// @see https://gitlab.com/drupalspoons/devel/-/issues/252
\Kint::dump($input, '---temporary-fix-see-issue-252---');
}
else {
\Kint::dump($input);
}
$dump = ob_get_clean();
if ($name) {
// Kint no longer treats an additional parameter as a custom title, but we
// can add the required $name as a label at the top of the output.
$dump = str_replace('<div class="kint-rich">', '<div class="kint-rich">' . $name . ': ', $dump);
// Remove the output from the second dummy parameter. The pattern in [ ]
// matches the minimum to ensure we get just the string to be removed.
$pattern = '/(<dl><dt>[\\w\\d\\s<>\\/()]*"---temporary-fix-see-issue-252---"<\\/dt><\\/dl>)/';
preg_match($pattern, $dump, $matches);
if (!preg_last_error() && isset($matches[1])) {
$dump = str_replace($matches[1], '', $dump);
}
}
return $this
->setSafeMarkup($dump);
}