Mercurial > hg > isophonics-drupal-site
view vendor/consolidation/annotated-command/src/Hooks/Dispatchers/ExtracterHookDispatcher.php @ 19:fa3358dc1485 tip
Add ndrum files
author | Chris Cannam |
---|---|
date | Wed, 28 Aug 2019 13:14:47 +0100 |
parents | 4c8ae668cc8c |
children |
line wrap: on
line source
<?php namespace Consolidation\AnnotatedCommand\Hooks\Dispatchers; use Consolidation\AnnotatedCommand\Hooks\ExtractOutputInterface; use Consolidation\AnnotatedCommand\Hooks\HookManager; use Consolidation\AnnotatedCommand\OutputDataInterface; /** * Call hooks */ class ExtracterHookDispatcher extends HookDispatcher implements ExtractOutputInterface { /** * Convert the result object to printable output in * structured form. */ public function extractOutput($result) { if ($result instanceof OutputDataInterface) { return $result->getOutputData(); } $hooks = [ HookManager::EXTRACT_OUTPUT, ]; $extractors = $this->getHooks($hooks); foreach ($extractors as $extractor) { $structuredOutput = $this->callExtractor($extractor, $result); if (isset($structuredOutput)) { return $structuredOutput; } } return $result; } protected function callExtractor($extractor, $result) { if ($extractor instanceof ExtractOutputInterface) { return $extractor->extractOutput($result); } if (is_callable($extractor)) { return $extractor($result); } } }