diff vendor/consolidation/output-formatters/src/FormatterManager.php @ 13:5fb285c0d0e3

Update Drupal core to 8.4.7 via Composer. Security update; I *think* we've been lucky to get away with this so far, as we don't support self-registration which seems to be used by the so-called "drupalgeddon 2" attack that 8.4.5 was vulnerable to.
author Chris Cannam
date Mon, 23 Apr 2018 09:33:26 +0100
parents 4c8ae668cc8c
children 129ea1e6d783
line wrap: on
line diff
--- a/vendor/consolidation/output-formatters/src/FormatterManager.php	Fri Feb 23 15:52:07 2018 +0000
+++ b/vendor/consolidation/output-formatters/src/FormatterManager.php	Mon Apr 23 09:33:26 2018 +0100
@@ -4,10 +4,13 @@
 use Consolidation\OutputFormatters\Exception\IncompatibleDataException;
 use Consolidation\OutputFormatters\Exception\InvalidFormatException;
 use Consolidation\OutputFormatters\Exception\UnknownFormatException;
+use Consolidation\OutputFormatters\Formatters\FormatterAwareInterface;
 use Consolidation\OutputFormatters\Formatters\FormatterInterface;
+use Consolidation\OutputFormatters\Formatters\MetadataFormatterInterface;
 use Consolidation\OutputFormatters\Formatters\RenderDataInterface;
 use Consolidation\OutputFormatters\Options\FormatterOptions;
 use Consolidation\OutputFormatters\Options\OverrideOptionsInterface;
+use Consolidation\OutputFormatters\StructuredData\MetadataInterface;
 use Consolidation\OutputFormatters\StructuredData\RestructureInterface;
 use Consolidation\OutputFormatters\Transformations\DomToArraySimplifier;
 use Consolidation\OutputFormatters\Transformations\OverrideRestructureInterface;
@@ -47,6 +50,9 @@
             'table' => '\Consolidation\OutputFormatters\Formatters\TableFormatter',
             'sections' => '\Consolidation\OutputFormatters\Formatters\SectionsFormatter',
         ];
+        if (class_exists('Symfony\Component\VarDumper\Dumper\CliDumper')) {
+             $defaultFormatters['var_dump'] = '\Consolidation\OutputFormatters\Formatters\VarDumpFormatter';
+        }
         foreach ($defaultFormatters as $id => $formatterClassname) {
             $formatter = new $formatterClassname;
             $this->addFormatter($id, $formatter);
@@ -202,10 +208,16 @@
             $validFormats = $this->validFormats($structuredOutput);
             throw new InvalidFormatException((string)$format, $structuredOutput, $validFormats);
         }
+        if ($structuredOutput instanceof FormatterAwareInterface) {
+            $structuredOutput->setFormatter($formatter);
+        }
         // Give the formatter a chance to override the options
         $options = $this->overrideOptions($formatter, $structuredOutput, $options);
-        $structuredOutput = $this->validateAndRestructure($formatter, $structuredOutput, $options);
-        $formatter->write($output, $structuredOutput, $options);
+        $restructuredOutput = $this->validateAndRestructure($formatter, $structuredOutput, $options);
+        if ($formatter instanceof MetadataFormatterInterface) {
+            $formatter->writeMetadata($output, $structuredOutput, $options);
+        }
+        $formatter->write($output, $restructuredOutput, $options);
     }
 
     protected function validateAndRestructure(FormatterInterface $formatter, $structuredOutput, FormatterOptions $options)