/**
  * Resolve an environment variable definition to a value.
  *
  * @param EnvironmentVariableDefinition $definition
  *
  * {@inheritdoc}
  */
 public function resolve(Definition $definition, array $parameters = [])
 {
     $value = call_user_func($this->variableReader, $definition->getVariableName());
     if (false !== $value) {
         return $value;
     }
     if (!$definition->isOptional()) {
         throw new DefinitionException(sprintf("The environment variable '%s' has not been defined", $definition->getVariableName()));
     }
     $value = $definition->getDefaultValue();
     // Nested definition
     if ($value instanceof DefinitionHelper) {
         return $this->definitionResolver->resolve($value->getDefinition(''));
     }
     return $value;
 }