59200fa1ac004c261f75e64ca3cc001555a253ad
[yaffs-website] / web / modules / contrib / devel / src / Plugin / Devel / Dumper / VarDumper.php
1 <?php
2
3 namespace Drupal\devel\Plugin\Devel\Dumper;
4
5 use Drupal\devel\DevelDumperBase;
6 use Symfony\Component\VarDumper\Cloner\VarCloner;
7 use Symfony\Component\VarDumper\Dumper\CliDumper;
8 use Symfony\Component\VarDumper\Dumper\HtmlDumper;
9
10 /**
11  * Provides a Symfony VarDumper dumper plugin.
12  *
13  * @DevelDumper(
14  *   id = "var_dumper",
15  *   label = @Translation("Symfony var-dumper"),
16  *   description = @Translation("Wrapper for <a href='https://github.com/symfony/var-dumper'>Symfony var-dumper</a> debugging tool."),
17  * )
18  *
19  */
20 class VarDumper extends DevelDumperBase {
21
22   /**
23    * {@inheritdoc}
24    */
25   public function export($input, $name = NULL) {
26     $cloner = new VarCloner();
27     $dumper = 'cli' === PHP_SAPI ? new CliDumper() : new HtmlDumper();
28
29     $output = fopen('php://memory', 'r+b');
30     $dumper->dump($cloner->cloneVar($input), $output);
31     $output = stream_get_contents($output, -1, 0);
32
33     if ($name) {
34       $output = $name . ' => ' . $output;
35     }
36
37     return $this->setSafeMarkup($output);
38   }
39
40   /**
41    * {@inheritdoc}
42    */
43   public static function checkRequirements() {
44     return class_exists('Symfony\Component\VarDumper\Cloner\VarCloner', TRUE);
45   }
46
47 }