Mercurial > hg > isophonics-drupal-site
view vendor/consolidation/annotated-command/src/Hooks/Dispatchers/ExtracterHookDispatcher.php @ 0:4c8ae668cc8c
Initial import (non-working)
author | Chris Cannam |
---|---|
date | Wed, 29 Nov 2017 16:09:58 +0000 |
parents | |
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); } } }