PluginProbe
Elementor Website Builder – more than just a page builder / 3.26.0-dev5
Elementor Website Builder – more than just a page builder v3.26.0-dev5
4.3.0-beta3 4.3.0-beta2 4.3.0-beta1 4.2.4 4.2.3 4.2.2 4.2.1 4.2.0 4.1.5 4.2.0-beta2 4.2.0-dev2 4.2.0-beta1 4.1.4 4.1.3 4.1.2 4.1.1 4.1.0 4.1.0-beta3 4.1.0-dev3 4.0.9 4.1.0-beta2 4.1.0-dev2 4.0.8 4.1.0-beta1 4.1.0-dev1 All 452 releases
elementor / vendor_prefixed / php-di / php-di / src / Definition / Resolver / EnvironmentVariableResolver.php

EnvironmentVariableResolver.php in Elementor Website Builder – more than just a page builder 3.26.0-dev5, at vendor_prefixed/php-di/php-di/src/Definition/Resolver/EnvironmentVariableResolver.php

64 lines 2.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 declare (strict_types=1);
4 namespace ElementorDeps\DI\Definition\Resolver;
5
6 use ElementorDeps\DI\Definition\Definition;
7 use ElementorDeps\DI\Definition\EnvironmentVariableDefinition;
8 use ElementorDeps\DI\Definition\Exception\InvalidDefinition;
9 /**
10 * Resolves a environment variable definition to a value.
11 *
12 * @author James Harris <james.harris@icecave.com.au>
13 */
14 class EnvironmentVariableResolver implements DefinitionResolver
15 {
16 /**
17 * @var DefinitionResolver
18 */
19 private $definitionResolver;
20 /**
21 * @var callable
22 */
23 private $variableReader;
24 public function __construct(DefinitionResolver $definitionResolver, $variableReader = null)
25 {
26 $this->definitionResolver = $definitionResolver;
27 $this->variableReader = $variableReader ?? [$this, 'getEnvVariable'];
28 }
29 /**
30 * Resolve an environment variable definition to a value.
31 *
32 * @param EnvironmentVariableDefinition $definition
33 */
34 public function resolve(Definition $definition, array $parameters = [])
35 {
36 $value = \call_user_func($this->variableReader, $definition->getVariableName());
37 if (\false !== $value) {
38 return $value;
39 }
40 if (!$definition->isOptional()) {
41 throw new InvalidDefinition(\sprintf("The environment variable '%s' has not been defined", $definition->getVariableName()));
42 }
43 $value = $definition->getDefaultValue();
44 // Nested definition
45 if ($value instanceof Definition) {
46 return $this->definitionResolver->resolve($value);
47 }
48 return $value;
49 }
50 public function isResolvable(Definition $definition, array $parameters = []) : bool
51 {
52 return \true;
53 }
54 protected function getEnvVariable(string $variableName)
55 {
56 if (isset($_ENV[$variableName])) {
57 return $_ENV[$variableName];
58 } elseif (isset($_SERVER[$variableName])) {
59 return $_SERVER[$variableName];
60 }
61 return \getenv($variableName);
62 }
63 }
64