Mercurial > hg > isophonics-drupal-site
view vendor/consolidation/annotated-command/src/Hooks/Dispatchers/ValidateHookDispatcher.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\AnnotationData; use Consolidation\AnnotatedCommand\CommandData; use Consolidation\AnnotatedCommand\CommandError; use Consolidation\AnnotatedCommand\Hooks\HookManager; use Consolidation\AnnotatedCommand\Hooks\ValidatorInterface; /** * Call hooks */ class ValidateHookDispatcher extends HookDispatcher implements ValidatorInterface { public function validate(CommandData $commandData) { $hooks = [ HookManager::PRE_ARGUMENT_VALIDATOR, HookManager::ARGUMENT_VALIDATOR, HookManager::POST_ARGUMENT_VALIDATOR, HookManager::PRE_COMMAND_HOOK, HookManager::COMMAND_HOOK, ]; $validators = $this->getHooks($hooks, $commandData->annotationData()); foreach ($validators as $validator) { $validated = $this->callValidator($validator, $commandData); if ($validated === false) { return new CommandError(); } if (is_object($validated)) { return $validated; } } } protected function callValidator($validator, CommandData $commandData) { if ($validator instanceof ValidatorInterface) { return $validator->validate($commandData); } if (is_callable($validator)) { return $validator($commandData); } } }