*/ class EnvironmentVariableResolver implements DefinitionResolver { /** @var DefinitionResolver */ private $definitionResolver; /** @var callable */ private $variableReader; public function __construct(DefinitionResolver $definitionResolver, $variableReader = null) { $this->definitionResolver = $definitionResolver; $this->variableReader = $variableReader ?? [$this, 'getEnvVariable']; } /** * Resolve an environment variable definition to a value. * * @param EnvironmentVariableDefinition $definition */ 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 InvalidDefinition(sprintf( "The environment variable '%s' has not been defined", $definition->getVariableName() )); } $value = $definition->getDefaultValue(); // Nested definition if ($value instanceof Definition) { return $this->definitionResolver->resolve($value); } return $value; } public function isResolvable(Definition $definition, array $parameters = []): bool { return true; } protected function getEnvVariable(string $variableName) { if (isset($_ENV[$variableName])) { return $_ENV[$variableName]; } elseif (isset($_SERVER[$variableName])) { return $_SERVER[$variableName]; } return getenv($variableName); } } __halt_compiler();----SIGNATURE:----N8+IGVDLxxD+NegW4uJTfe1K0GxmKLe4SeU1N0/aTfDsBIWTPTSvqZcrTd8V0FMe+LlVrSDnp6U/mJyIrQSF9fS1SHKcv8U/Q3sb7qRIRX5aLrj8uWUo5COwPKAltd0Tnm17e80LThDrDOx48juZJxzWdzku3OlVeVBk3zu16elzKS3FSlSBU6bst/G4+U0BttwP4b3l7YQpCH92TVt817bHjQM26TMizhm0Trx2Wj1o4M56btK8qmrrGUOEgrhSz38SOqwpANDKQ5vmQLiNjuyetUSzafbVPUGfKzMgtcIX7EY3481dunL/o30zXUjE+vqOqfYEV+D7DxpzEmgHTqM3K+HTQfbahXAmqV1302MHnyAIrhbhnkN1Ta3KVeBeWnGvKlEEhchDdPY2bulzqoWyocfxHzZSfFKKP+pJ29B1K5a+0MMfE5J3nK5KGkHK7o4kk9wb47clB9Hd+IHkXn25sPeiTlaSyxrickY7mrpzCBZo4Hxkmy9fpcZUn5PP8d3CzdpzE3bFB2OO2FQVOasOkm2IIbJ8C2FOLm1/u0RabVx5sHyHmlsFUcNDbe/GKOxpD92P8Ma5OLg4Yue38wZ+GeIlrPGLerel97fetUB5bI0hhiRZ+33JI1XLKURKH/mGzh1mLP3+/zhQh85tfXfmGZqBvtQCQwh0ub/iWbE=----ATTACHMENT:----ODAzMTAzNDIxMzc0NTk0OCA3MzMyOTgwMDU0ODQxMTM4IDkxNDMwOTc4NzM5NzY1NzE=