devel-4.x-dev/src/Plugin/Devel/Dumper/DoctrineDebug.php
src/Plugin/Devel/Dumper/DoctrineDebug.php
<?php namespace Drupal\devel\Plugin\Devel\Dumper; use Doctrine\Common\Util\Debug; use Drupal\Component\Utility\Xss; use Drupal\devel\DevelDumperBase; /** * Provides a DoctrineDebug dumper plugin. * * @DevelDumper( * id = "default", * label = @Translation("Default"), * description = @Translation("Wrapper for <a href='https://www.doctrine-project.org/api/common/latest/Doctrine/Common/Util/Debug.html'>Doctrine</a> debugging tool.") * ) */ class DoctrineDebug extends DevelDumperBase { /** * {@inheritdoc} */ public function export($input, $name = NULL) { $name = $name ? $name . ' => ' : ''; $variable = Debug::export($input, 6); ob_start(); print_r($variable); $dump = ob_get_contents(); ob_end_clean(); // Run Xss::filterAdmin on the resulting string to prevent // cross-site-scripting (XSS) vulnerabilities. $dump = Xss::filterAdmin($dump); $config = \Drupal::config('devel.settings'); $debug_pre = $config->get('debug_pre'); $dump = ($debug_pre ? '<pre>' : '') . $name . $dump . ($debug_pre ? '</pre>' : ''); return $this->setSafeMarkup($dump); } /** * {@inheritdoc} */ public function exportAsRenderable($input, $name = NULL) { $output['container'] = [ '#type' => 'details', '#title' => $name ?: $this->t('Variable'), '#attached' => [ 'library' => ['devel/devel'], ], '#attributes' => [ 'class' => ['container-inline', 'devel-dumper', 'devel-selectable'], ], 'export' => [ '#markup' => $this->export($input), ], ]; return $output; } /** * {@inheritdoc} */ public static function checkRequirements() { return TRUE; } }