DoctrineDebug.php

Same filename in other branches
  1. 8.x-1.x src/Plugin/Devel/Dumper/DoctrineDebug.php
  2. 5.x src/Plugin/Devel/Dumper/DoctrineDebug.php

Namespace

Drupal\devel\Plugin\Devel\Dumper

File

src/Plugin/Devel/Dumper/DoctrineDebug.php

View source
<?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;
    }

}

Classes

Title Deprecated Summary
DoctrineDebug Provides a DoctrineDebug dumper plugin.