Exemple #1
0
 /**
  * @param ArgumentDefinition[] $argumentDefinitions
  * @param NodeInterface[] $argumentsObjectTree
  * @throws Exception
  */
 protected function validateArguments(array $argumentDefinitions, array $argumentsObjectTree)
 {
     $additionalArguments = [];
     foreach ($argumentsObjectTree as $argumentName => $value) {
         if (!array_key_exists($argumentName, $argumentDefinitions)) {
             $additionalArguments[$argumentName] = $value;
         }
     }
     foreach ($argumentDefinitions as $argumentDefinition) {
         if ($argumentDefinition->isRequired() && $argumentDefinition->getDefaultValue() === null) {
             $name = $argumentDefinition->getName();
             if (!array_key_exists($name, $argumentsObjectTree)) {
                 throw new Exception(sprintf('Required argument %s for ViewHelper %s was not provided', $name, $this->viewHelperClassName));
             }
         }
     }
     $this->abortIfRequiredArgumentsAreMissing($argumentDefinitions, $argumentsObjectTree);
     $this->uninitializedViewHelper->validateAdditionalArguments($additionalArguments);
 }