Skip to content

Commit

Permalink
Make var-dump and var-export usable for non-arrays (#109)
Browse files Browse the repository at this point in the history
* Make var-dump and var-export usable for non-arrays

Also add simplifier for Drupal Entities

* Add class_exists() check.

* Update expectation

* Move simplifier to Drush

* Add comment back

* Remove use statement

* Sigh
  • Loading branch information
weitzman authored Jul 5, 2023
1 parent 33e140d commit dd7b6f0
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 3 deletions.
13 changes: 12 additions & 1 deletion src/Formatters/VarDumpFormatter.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
namespace Consolidation\OutputFormatters\Formatters;

use Consolidation\OutputFormatters\Options\FormatterOptions;
use Consolidation\OutputFormatters\Validate\ValidationInterface;
use Symfony\Component\Console\Output\OutputInterface;
use Symfony\Component\Console\Output\StreamOutput;
use Symfony\Component\VarDumper\Cloner\VarCloner;
Expand All @@ -13,7 +14,7 @@
*
* Run provided data through Symfony VarDumper component.
*/
class VarDumpFormatter implements FormatterInterface
class VarDumpFormatter implements FormatterInterface, ValidationInterface
{
/**
* @inheritdoc
Expand All @@ -37,4 +38,14 @@ public function write(OutputInterface $output, $data, FormatterOptions $options)
fclose($stream);
}
}

public function isValidDataType(\ReflectionClass $dataType)
{
return true;
}

public function validate($structuredData)
{
return $structuredData;
}
}
13 changes: 12 additions & 1 deletion src/Formatters/VarExportFormatter.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,15 @@
namespace Consolidation\OutputFormatters\Formatters;

use Consolidation\OutputFormatters\Options\FormatterOptions;
use Consolidation\OutputFormatters\Validate\ValidationInterface;
use Symfony\Component\Console\Output\OutputInterface;

/**
* Var_export formatter
*
* Run provided date thruogh var_export.
*/
class VarExportFormatter implements FormatterInterface
class VarExportFormatter implements FormatterInterface, ValidationInterface
{
/**
* @inheritdoc
Expand All @@ -19,4 +20,14 @@ public function write(OutputInterface $output, $data, FormatterOptions $options)
{
$output->writeln(var_export($data, true));
}

public function isValidDataType(\ReflectionClass $dataType)
{
return true;
}

public function validate($structuredData)
{
return $structuredData;
}
}
2 changes: 1 addition & 1 deletion tests/ValidFormatsTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ function testValidFormats()

// TODO: it woud be better if this returned an empty set instead of 'string'.
$validFormats = $this->formatterManager->validFormats($notADataType);
$this->assertEquals('null,string', implode(',', $validFormats));
$this->assertEquals('null,string,var_dump,var_export', implode(',', $validFormats));
}

function testAutomaticOptions()
Expand Down

0 comments on commit dd7b6f0

Please sign in to comment.