TestVarDumper.php

Same filename in other branches
  1. 9 core/tests/Drupal/TestTools/TestVarDumper.php
  2. 10 core/tests/Drupal/TestTools/TestVarDumper.php

Namespace

Drupal\TestTools

File

core/tests/Drupal/TestTools/TestVarDumper.php

View source
<?php

declare (strict_types=1);
namespace Drupal\TestTools;

use Symfony\Component\VarDumper\Cloner\VarCloner;
use Symfony\Component\VarDumper\Dumper\CliDumper;
use Symfony\Component\VarDumper\Dumper\HtmlDumper;

/**
 * Provides handlers for the Symfony VarDumper to work within tests.
 *
 * This allows the dump() function to produce output on the terminal without
 * causing PHPUnit to complain.
 */
class TestVarDumper {
    
    /**
     * A CLI handler for \Symfony\Component\VarDumper\VarDumper.
     */
    public static function cliHandler($var) {
        $cloner = new VarCloner();
        $dumper = new CliDumper();
        fwrite(STDERR, "\n");
        $dumper->setColors(TRUE);
        $dumper->dump($cloner->cloneVar($var), function ($line, $depth, $indent_pad) {
            // A negative depth means "end of dump".
            if ($depth >= 0) {
                // Adds a two spaces indentation to the line.
                fwrite(STDERR, str_repeat($indent_pad, $depth) . $line . "\n");
            }
        });
    }
    
    /**
     * A HTML handler for \Symfony\Component\VarDumper\VarDumper.
     */
    public static function htmlHandler($var) {
        $cloner = new VarCloner();
        $dumper = new HtmlDumper();
        $dumper->dump($cloner->cloneVar($var));
    }

}

Classes

Title Deprecated Summary
TestVarDumper Provides handlers for the Symfony VarDumper to work within tests.

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.