/** * 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; }