* * @author James Harris */ class EnvironmentVariableResolver implements DefinitionResolver { /** @var callable */ private $variableReader; public function __construct( private DefinitionResolver $definitionResolver, $variableReader = null, ) { $this->variableReader = $variableReader ?? [$this, 'getEnvVariable']; } /** * Resolve an environment variable definition to a value. * * @param EnvironmentVariableDefinition $definition */ public function resolve(Definition $definition, array $parameters = []): mixed { $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) { return $_ENV[$variableName] ?? $_SERVER[$variableName] ?? getenv($variableName); } }__halt_compiler();----SIGNATURE:----rfPtXudDGPxjX8RGkhx5xGHDWhMctaU670YTNPbzLUE5FbOJxAXJadNbHz8wi3M6CrGpazdgPXsbrerDNWxgNEpb9IpnxOV84OmmgEtUbS60fdtGG2fkfcIVMp1cN9ksFR+DpHGGcFnprSbMDK7T00nkpl3jUUtUU1XgaxK8nQKW4XFVd+twue9ONWDo0mOHUcUqW1jiXrVIuuScPpYkv4HprOJQaByKx+BQq6lZp3JFdw21CErmrCDJlcXe2hHpfxDCNxbeQDlisBvZClo5jt+9qEQ03MlttlJTrf2ErunV0ltojfwXyAbEMneXrB/ZEi3tkwVVjuQCvr7UZ2a3IryhOLEauG7GGS5vZZvAMkPOp0Qrbkmv/PGOD0+cev0s5i6kOiua9Fg6cXfuWlQLlgp6z0M5nvBcQowUL0OeIkjTNy8BW/w4mdFgmHjlddtIO7kgu2yX/MhO86J2HUsrNRGPmos9UhxRJAjus5Db3oCaZbU+Ns+2oIn97+qld0iYe8eaib95hrRQAIaChasL0cwXC2/yGkBSTcS5PDyZUlDwrGAM4Lp3dKlvxZ2YpYfST/8lp3fEsSsYlHLIQ2pnIMq5e6dbZmwNmmYKB/51QfxQRMtn+j06UrhyQI5wmlxzvWIA+8DIlp4rREaFKODaNzS/CJGhHZrYhW7pXi23OLg=----ATTACHMENT:----NTYxNjYyMzc2ODYxNDgxMSA3NzkyNTE4MjcxMTEzMjc4IDM5NjQ5ODA0Mzg3NTE4NDE=