*/ class EnvironmentVariableDefinitionDumper implements DefinitionDumper { /** * {@inheritdoc} */ public function dump(Definition $definition) { if (! $definition instanceof EnvironmentVariableDefinition) { throw new \InvalidArgumentException(sprintf( 'This definition dumper is only compatible with EnvironmentVariableDefinition objects, %s given', get_class($definition) )); } $str = " variable = " . $definition->getVariableName(); $str .= "\n optional = " . ($definition->isOptional() ? 'yes' : 'no'); if ($definition->isOptional()) { $defaultValue = $definition->getDefaultValue(); if ($defaultValue instanceof DefinitionHelper) { $nestedDefinition = Debug::dumpDefinition($defaultValue->getDefinition('')); $defaultValueStr = $this->indent($nestedDefinition); } else { $defaultValueStr = var_export($defaultValue, true); } $str .= "\n default = " . $defaultValueStr; } return sprintf( "Environment variable (\n%s\n)", $str ); } private function indent($str) { return str_replace("\n", "\n ", $str); } }