diff options
| author | Andrew Dolgov <fox@fakecake.org> | 2023-10-20 17:12:29 +0300 |
|---|---|---|
| committer | Andrew Dolgov <fox@fakecake.org> | 2023-10-20 21:13:39 +0300 |
| commit | cdd7ad020e165fe680703b6d3319b908b682fb7a (patch) | |
| tree | b51eb09b7b4587e8fbc5624ac8d88d28cfcd0b04 /vendor/open-telemetry/api/Instrumentation/ConfigurationResolver.php | |
| parent | 45a9ff0c88cbd33892ff16ab837e9059937d656e (diff) | |
jaeger-client -> opentelemetry
Diffstat (limited to 'vendor/open-telemetry/api/Instrumentation/ConfigurationResolver.php')
| -rw-r--r-- | vendor/open-telemetry/api/Instrumentation/ConfigurationResolver.php | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/vendor/open-telemetry/api/Instrumentation/ConfigurationResolver.php b/vendor/open-telemetry/api/Instrumentation/ConfigurationResolver.php new file mode 100644 index 000000000..bb5619c30 --- /dev/null +++ b/vendor/open-telemetry/api/Instrumentation/ConfigurationResolver.php @@ -0,0 +1,77 @@ +<?php + +declare(strict_types=1); + +namespace OpenTelemetry\API\Instrumentation; + +class ConfigurationResolver implements ConfigurationResolverInterface +{ + public function has(string $name): bool + { + return $this->getVariable($name) !== null; + } + + public function getString(string $name): ?string + { + return $this->getVariable($name); + } + + public function getBoolean(string $name): ?bool + { + $value = $this->getVariable($name); + if ($value === null) { + return null; + } + + return ($value === 'true'); + } + + public function getInt(string $name): ?int + { + $value = $this->getVariable($name); + if ($value === null) { + return null; + } + if (filter_var($value, FILTER_VALIDATE_INT) === false) { + //log warning + return null; + } + + return (int) $value; + } + + public function getList(string $name): array + { + $value = $this->getVariable($name); + if ($value === null) { + return []; + } + + return explode(',', $value); + } + + private function getVariable(string $name): ?string + { + $value = $_SERVER[$name] ?? null; + if ($value !== false && !self::isEmpty($value)) { + assert(is_string($value)); + + return $value; + } + $value = getenv($name); + if ($value !== false && !self::isEmpty($value)) { + return $value; + } + $value = ini_get($name); + if ($value !== false && !self::isEmpty($value)) { + return $value; + } + + return null; + } + + private static function isEmpty($value): bool + { + return $value === false || $value === null || $value === ''; + } +} |