summaryrefslogtreecommitdiff
path: root/vendor/open-telemetry/context
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/open-telemetry/context')
-rw-r--r--vendor/open-telemetry/context/Context.php131
-rw-r--r--vendor/open-telemetry/context/ContextInterface.php86
-rw-r--r--vendor/open-telemetry/context/ContextKey.php23
-rw-r--r--vendor/open-telemetry/context/ContextKeyInterface.php12
-rw-r--r--vendor/open-telemetry/context/ContextKeys.php25
-rw-r--r--vendor/open-telemetry/context/ContextStorage.php57
-rw-r--r--vendor/open-telemetry/context/ContextStorageHead.php19
-rw-r--r--vendor/open-telemetry/context/ContextStorageInterface.php32
-rw-r--r--vendor/open-telemetry/context/ContextStorageNode.php92
-rw-r--r--vendor/open-telemetry/context/ContextStorageScopeInterface.php22
-rw-r--r--vendor/open-telemetry/context/DebugScope.php94
-rw-r--r--vendor/open-telemetry/context/ExecutionContextAwareInterface.php23
-rw-r--r--vendor/open-telemetry/context/FiberBoundContextStorage.php84
-rw-r--r--vendor/open-telemetry/context/FiberBoundContextStorageScope.php67
-rw-r--r--vendor/open-telemetry/context/ImplicitContextKeyedInterface.php32
-rw-r--r--vendor/open-telemetry/context/Propagation/ArrayAccessGetterSetter.php129
-rw-r--r--vendor/open-telemetry/context/Propagation/MultiTextMapPropagator.php83
-rw-r--r--vendor/open-telemetry/context/Propagation/NoopTextMapPropagator.php36
-rw-r--r--vendor/open-telemetry/context/Propagation/PropagationGetterInterface.php25
-rw-r--r--vendor/open-telemetry/context/Propagation/PropagationSetterInterface.php16
-rw-r--r--vendor/open-telemetry/context/Propagation/SanitizeCombinedHeadersPropagationGetter.php46
-rw-r--r--vendor/open-telemetry/context/Propagation/TextMapPropagatorInterface.php40
-rw-r--r--vendor/open-telemetry/context/README.md63
-rw-r--r--vendor/open-telemetry/context/ScopeInterface.php32
-rw-r--r--vendor/open-telemetry/context/ZendObserverFiber.php67
-rw-r--r--vendor/open-telemetry/context/composer.json41
-rw-r--r--vendor/open-telemetry/context/fiber/initialize_fiber_handler.php20
-rw-r--r--vendor/open-telemetry/context/fiber/zend_observer_fiber.h9
28 files changed, 0 insertions, 1406 deletions
diff --git a/vendor/open-telemetry/context/Context.php b/vendor/open-telemetry/context/Context.php
deleted file mode 100644
index 32b0162a3..000000000
--- a/vendor/open-telemetry/context/Context.php
+++ /dev/null
@@ -1,131 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-namespace OpenTelemetry\Context;
-
-use function assert;
-use function spl_object_id;
-
-/**
- * @see https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/context/README.md#context
- */
-final class Context implements ContextInterface
-{
- /** @var ContextStorageInterface&ExecutionContextAwareInterface */
- private static ContextStorageInterface $storage;
-
- // Optimization for spans to avoid copying the context array.
- private static ContextKeyInterface $spanContextKey;
- private ?object $span = null;
- /** @var array<int, mixed> */
- private array $context = [];
- /** @var array<int, ContextKeyInterface> */
- private array $contextKeys = [];
-
- private function __construct()
- {
- self::$spanContextKey = ContextKeys::span();
- }
-
- public static function createKey(string $key): ContextKeyInterface
- {
- return new ContextKey($key);
- }
-
- /**
- * @param ContextStorageInterface&ExecutionContextAwareInterface $storage
- */
- public static function setStorage(ContextStorageInterface $storage): void
- {
- self::$storage = $storage;
- }
-
- /**
- * @return ContextStorageInterface&ExecutionContextAwareInterface
- */
- public static function storage(): ContextStorageInterface
- {
- /** @psalm-suppress RedundantPropertyInitializationCheck */
- return self::$storage ??= new ContextStorage();
- }
-
- /**
- * @param ContextInterface|false|null $context
- *
- * @internal OpenTelemetry
- */
- public static function resolve($context, ?ContextStorageInterface $contextStorage = null): ContextInterface
- {
- return $context
- ?? ($contextStorage ?? self::storage())->current()
- ?: self::getRoot();
- }
-
- /**
- * @internal
- */
- public static function getRoot(): ContextInterface
- {
- static $empty;
-
- return $empty ??= new self();
- }
-
- public static function getCurrent(): ContextInterface
- {
- return self::storage()->current();
- }
-
- public function activate(): ScopeInterface
- {
- $scope = self::storage()->attach($this);
- /** @psalm-suppress RedundantCondition */
- assert((bool) $scope = new DebugScope($scope));
-
- return $scope;
- }
-
- public function withContextValue(ImplicitContextKeyedInterface $value): ContextInterface
- {
- return $value->storeInContext($this);
- }
-
- public function with(ContextKeyInterface $key, $value): self
- {
- if ($this->get($key) === $value) {
- return $this;
- }
-
- $self = clone $this;
-
- if ($key === self::$spanContextKey) {
- $self->span = $value; // @phan-suppress-current-line PhanTypeMismatchPropertyReal
-
- return $self;
- }
-
- $id = spl_object_id($key);
- if ($value !== null) {
- $self->context[$id] = $value;
- $self->contextKeys[$id] ??= $key;
- } else {
- unset(
- $self->context[$id],
- $self->contextKeys[$id],
- );
- }
-
- return $self;
- }
-
- public function get(ContextKeyInterface $key)
- {
- if ($key === self::$spanContextKey) {
- /** @psalm-suppress InvalidReturnStatement */
- return $this->span;
- }
-
- return $this->context[spl_object_id($key)] ?? null;
- }
-}
diff --git a/vendor/open-telemetry/context/ContextInterface.php b/vendor/open-telemetry/context/ContextInterface.php
deleted file mode 100644
index 17a3fb9a2..000000000
--- a/vendor/open-telemetry/context/ContextInterface.php
+++ /dev/null
@@ -1,86 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-namespace OpenTelemetry\Context;
-
-/**
- * Immutable execution scoped propagation mechanism.
- *
- * @see https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/context/README.md#context
- */
-interface ContextInterface
-{
- /**
- * Creates a new context key.
- *
- * @param non-empty-string $key name of the key
- * @return ContextKeyInterface created key
- *
- * @see https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/context/README.md#create-a-key
- */
- public static function createKey(string $key): ContextKeyInterface;
-
- /**
- * Returns the current context.
- *
- * @return ContextInterface current context
- *
- * @see https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/context/README.md#get-current-context
- */
- public static function getCurrent(): ContextInterface;
-
- /**
- * Attaches this context as active context.
- *
- * The returned scope has to be {@link ScopeInterface::detach()}ed. In most
- * cases this should be done using a `try-finally` statement:
- * ```php
- * $scope = $context->activate();
- * try {
- * // ...
- * } finally {
- * $scope->detach();
- * }
- * ```
- *
- * @return ScopeInterface scope to detach the context and restore the previous
- * context
- *
- * @see https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/context/README.md#attach-context
- */
- public function activate(): ScopeInterface;
-
- /**
- * Returns a context with the given key set to the given value.
- *
- * @template T
- * @param ContextKeyInterface<T> $key key to set
- * @param T|null $value value to set
- * @return ContextInterface a context with the given key set to `$value`
- *
- * @see https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/context/README.md#set-value
- */
- public function with(ContextKeyInterface $key, $value): ContextInterface;
-
- /**
- * Returns a context with the given value set.
- *
- * @param ImplicitContextKeyedInterface $value value to set
- * @return ContextInterface a context with the given `$value`
- *
- * @see https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/context/README.md#set-value
- */
- public function withContextValue(ImplicitContextKeyedInterface $value): ContextInterface;
-
- /**
- * Returns the value assigned to the given key.
- *
- * @template T
- * @param ContextKeyInterface<T> $key key to get
- * @return T|null value assigned to `$key`, or null if no such value exists
- *
- * @see https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/context/README.md#get-value
- */
- public function get(ContextKeyInterface $key);
-}
diff --git a/vendor/open-telemetry/context/ContextKey.php b/vendor/open-telemetry/context/ContextKey.php
deleted file mode 100644
index f7450249e..000000000
--- a/vendor/open-telemetry/context/ContextKey.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-namespace OpenTelemetry\Context;
-
-/**
- * @internal
- */
-final class ContextKey implements ContextKeyInterface
-{
- private ?string $name;
-
- public function __construct(?string $name=null)
- {
- $this->name = $name;
- }
-
- public function name(): ?string
- {
- return $this->name;
- }
-}
diff --git a/vendor/open-telemetry/context/ContextKeyInterface.php b/vendor/open-telemetry/context/ContextKeyInterface.php
deleted file mode 100644
index b3ad00814..000000000
--- a/vendor/open-telemetry/context/ContextKeyInterface.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-namespace OpenTelemetry\Context;
-
-/**
- * @template-covariant T
- */
-interface ContextKeyInterface
-{
-}
diff --git a/vendor/open-telemetry/context/ContextKeys.php b/vendor/open-telemetry/context/ContextKeys.php
deleted file mode 100644
index bc1022568..000000000
--- a/vendor/open-telemetry/context/ContextKeys.php
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-namespace OpenTelemetry\Context;
-
-/**
- * @psalm-internal OpenTelemetry
- */
-final class ContextKeys
-{
- public static function span(): ContextKeyInterface
- {
- static $instance;
-
- return $instance ??= Context::createKey('opentelemetry-trace-span-key');
- }
-
- public static function baggage(): ContextKeyInterface
- {
- static $instance;
-
- return $instance ??= Context::createKey('opentelemetry-trace-baggage-key');
- }
-}
diff --git a/vendor/open-telemetry/context/ContextStorage.php b/vendor/open-telemetry/context/ContextStorage.php
deleted file mode 100644
index e82d3d161..000000000
--- a/vendor/open-telemetry/context/ContextStorage.php
+++ /dev/null
@@ -1,57 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-namespace OpenTelemetry\Context;
-
-/**
- * @internal
- */
-final class ContextStorage implements ContextStorageInterface, ExecutionContextAwareInterface
-{
- public ContextStorageHead $current;
- private ContextStorageHead $main;
- /** @var array<int|string, ContextStorageHead> */
- private array $forks = [];
-
- public function __construct()
- {
- $this->current = $this->main = new ContextStorageHead($this);
- }
-
- public function fork($id): void
- {
- $this->forks[$id] = clone $this->current;
- }
-
- public function switch($id): void
- {
- $this->current = $this->forks[$id] ?? $this->main;
- }
-
- public function destroy($id): void
- {
- unset($this->forks[$id]);
- }
-
- public function scope(): ?ContextStorageScopeInterface
- {
- return ($this->current->node->head ?? null) === $this->current
- ? $this->current->node
- : null;
- }
-
- public function current(): ContextInterface
- {
- return $this->current->node->context ?? Context::getRoot();
- }
-
- public function attach(ContextInterface $context): ContextStorageScopeInterface
- {
- return $this->current->node = new ContextStorageNode($context, $this->current, $this->current->node);
- }
-
- private function __clone()
- {
- }
-}
diff --git a/vendor/open-telemetry/context/ContextStorageHead.php b/vendor/open-telemetry/context/ContextStorageHead.php
deleted file mode 100644
index 3cc4d7181..000000000
--- a/vendor/open-telemetry/context/ContextStorageHead.php
+++ /dev/null
@@ -1,19 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-namespace OpenTelemetry\Context;
-
-/**
- * @internal
- */
-final class ContextStorageHead
-{
- public ContextStorage $storage;
- public ?ContextStorageNode $node = null;
-
- public function __construct(ContextStorage $storage)
- {
- $this->storage = $storage;
- }
-}
diff --git a/vendor/open-telemetry/context/ContextStorageInterface.php b/vendor/open-telemetry/context/ContextStorageInterface.php
deleted file mode 100644
index e5a105074..000000000
--- a/vendor/open-telemetry/context/ContextStorageInterface.php
+++ /dev/null
@@ -1,32 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-namespace OpenTelemetry\Context;
-
-interface ContextStorageInterface
-{
- /**
- * Returns the current scope.
- *
- * @return ContextStorageScopeInterface|null current scope, or null if no
- * scope was attached in the current execution unit
- */
- public function scope(): ?ContextStorageScopeInterface;
-
- /**
- * Returns the current context.
- *
- * @return ContextInterface current context
- */
- public function current(): ContextInterface;
-
- /**
- * Attaches the context as active context.
- *
- * @param ContextInterface $context context to attach
- * @return ContextStorageScopeInterface scope to detach the context and
- * restore the previous context
- */
- public function attach(ContextInterface $context): ContextStorageScopeInterface;
-}
diff --git a/vendor/open-telemetry/context/ContextStorageNode.php b/vendor/open-telemetry/context/ContextStorageNode.php
deleted file mode 100644
index 12d521660..000000000
--- a/vendor/open-telemetry/context/ContextStorageNode.php
+++ /dev/null
@@ -1,92 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-namespace OpenTelemetry\Context;
-
-use function assert;
-
-/**
- * @internal
- */
-final class ContextStorageNode implements ScopeInterface, ContextStorageScopeInterface
-{
- public ContextInterface $context;
- public ContextStorageHead $head;
- private ?ContextStorageNode $previous;
- private array $localStorage = [];
-
- public function __construct(
- ContextInterface $context,
- ContextStorageHead $head,
- ?ContextStorageNode $previous = null
- ) {
- $this->context = $context;
- $this->head = $head;
- $this->previous = $previous;
- }
-
- public function offsetExists($offset): bool
- {
- return isset($this->localStorage[$offset]);
- }
-
- /**
- * @phan-suppress PhanUndeclaredClassAttribute
- */
- #[\ReturnTypeWillChange]
- public function offsetGet($offset)
- {
- return $this->localStorage[$offset];
- }
-
- public function offsetSet($offset, $value): void
- {
- $this->localStorage[$offset] = $value;
- }
-
- public function offsetUnset($offset): void
- {
- unset($this->localStorage[$offset]);
- }
-
- public function context(): ContextInterface
- {
- return $this->context;
- }
-
- public function detach(): int
- {
- $flags = 0;
- if ($this->head !== $this->head->storage->current) {
- $flags |= ScopeInterface::INACTIVE;
- }
-
- if ($this === $this->head->node) {
- assert($this->previous !== $this);
- $this->head->node = $this->previous;
- $this->previous = $this;
-
- return $flags;
- }
-
- if ($this->previous === $this) {
- return $flags | ScopeInterface::DETACHED;
- }
-
- assert($this->head->node !== null);
- for ($n = $this->head->node, $depth = 1;
- $n->previous !== $this;
- $n = $n->previous, $depth++) {
- assert($n->previous !== null);
- }
- $n->previous = $this->previous;
- $this->previous = $this;
-
- return $flags | ScopeInterface::MISMATCH | $depth;
- }
-
- private function __clone()
- {
- }
-}
diff --git a/vendor/open-telemetry/context/ContextStorageScopeInterface.php b/vendor/open-telemetry/context/ContextStorageScopeInterface.php
deleted file mode 100644
index 5fe58d6eb..000000000
--- a/vendor/open-telemetry/context/ContextStorageScopeInterface.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-namespace OpenTelemetry\Context;
-
-use ArrayAccess;
-
-interface ContextStorageScopeInterface extends ScopeInterface, ArrayAccess
-{
- /**
- * Returns the context associated with this scope.
- *
- * @return ContextInterface associated context
- */
- public function context(): ContextInterface;
-
- /**
- * @param string $offset
- */
- public function offsetSet($offset, $value): void;
-}
diff --git a/vendor/open-telemetry/context/DebugScope.php b/vendor/open-telemetry/context/DebugScope.php
deleted file mode 100644
index e9e4d53c5..000000000
--- a/vendor/open-telemetry/context/DebugScope.php
+++ /dev/null
@@ -1,94 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-namespace OpenTelemetry\Context;
-
-use function basename;
-use function count;
-use function debug_backtrace;
-use const DEBUG_BACKTRACE_IGNORE_ARGS;
-use function sprintf;
-use function trigger_error;
-
-/**
- * @internal
- */
-final class DebugScope implements ScopeInterface
-{
- private const DEBUG_TRACE_CREATE = '__debug_trace_create';
- private const DEBUG_TRACE_DETACH = '__debug_trace_detach';
-
- private ContextStorageScopeInterface $scope;
-
- public function __construct(ContextStorageScopeInterface $node)
- {
- $this->scope = $node;
- $this->scope[self::DEBUG_TRACE_CREATE] = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS);
- }
-
- public function detach(): int
- {
- $this->scope[self::DEBUG_TRACE_DETACH] ??= debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS);
-
- $flags = $this->scope->detach();
-
- if (($flags & ScopeInterface::DETACHED) !== 0) {
- trigger_error(sprintf(
- 'Scope: unexpected call to Scope::detach() for scope #%d, scope was already detached %s',
- spl_object_id($this),
- self::formatBacktrace($this->scope[self::DEBUG_TRACE_DETACH]),
- ));
- } elseif (($flags & ScopeInterface::MISMATCH) !== 0) {
- trigger_error(sprintf(
- 'Scope: unexpected call to Scope::detach() for scope #%d, scope successfully detached but another scope should have been detached first',
- spl_object_id($this),
- ));
- } elseif (($flags & ScopeInterface::INACTIVE) !== 0) {
- trigger_error(sprintf(
- 'Scope: unexpected call to Scope::detach() for scope #%d, scope successfully detached from different execution context',
- spl_object_id($this),
- ));
- }
-
- return $flags;
- }
-
- public function __destruct()
- {
- if (!isset($this->scope[self::DEBUG_TRACE_DETACH])) {
- trigger_error(sprintf(
- 'Scope: missing call to Scope::detach() for scope #%d, created %s',
- spl_object_id($this->scope),
- self::formatBacktrace($this->scope[self::DEBUG_TRACE_CREATE]),
- ));
- }
- }
-
- private static function formatBacktrace(array $trace): string
- {
- $s = '';
- for ($i = 0, $n = count($trace) + 1; ++$i < $n;) {
- $s .= "\n\t";
- $s .= 'at ';
- if (isset($trace[$i]['class'])) {
- $s .= strtr($trace[$i]['class'], ['\\' => '.']);
- $s .= '.';
- }
- $s .= strtr($trace[$i]['function'] ?? '{main}', ['\\' => '.']);
- $s .= '(';
- if (isset($trace[$i - 1]['file'])) {
- $s .= basename($trace[$i - 1]['file']);
- if (isset($trace[$i - 1]['line'])) {
- $s .= ':';
- $s .= $trace[$i - 1]['line'];
- }
- } else {
- $s .= 'Unknown Source';
- }
- $s .= ')';
- }
-
- return $s . "\n";
- }
-}
diff --git a/vendor/open-telemetry/context/ExecutionContextAwareInterface.php b/vendor/open-telemetry/context/ExecutionContextAwareInterface.php
deleted file mode 100644
index 3a955bfae..000000000
--- a/vendor/open-telemetry/context/ExecutionContextAwareInterface.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-namespace OpenTelemetry\Context;
-
-interface ExecutionContextAwareInterface
-{
- /**
- * @param int|string $id
- */
- public function fork($id): void;
-
- /**
- * @param int|string $id
- */
- public function switch($id): void;
-
- /**
- * @param int|string $id
- */
- public function destroy($id): void;
-}
diff --git a/vendor/open-telemetry/context/FiberBoundContextStorage.php b/vendor/open-telemetry/context/FiberBoundContextStorage.php
deleted file mode 100644
index 667f73b3d..000000000
--- a/vendor/open-telemetry/context/FiberBoundContextStorage.php
+++ /dev/null
@@ -1,84 +0,0 @@
-<?php
-
-/** @noinspection PhpElementIsNotAvailableInCurrentPhpVersionInspection */
-
-declare(strict_types=1);
-
-namespace OpenTelemetry\Context;
-
-use function assert;
-use function class_exists;
-use const E_USER_WARNING;
-use Fiber;
-use function trigger_error;
-
-/**
- * @internal
- *
- * @phan-file-suppress PhanUndeclaredClassReference
- * @phan-file-suppress PhanUndeclaredClassMethod
- */
-final class FiberBoundContextStorage implements ContextStorageInterface, ExecutionContextAwareInterface
-{
- /** @var ContextStorageInterface&ExecutionContextAwareInterface */
- private ContextStorageInterface $storage;
-
- /**
- * @param ContextStorageInterface&ExecutionContextAwareInterface $storage
- */
- public function __construct(ContextStorageInterface $storage)
- {
- $this->storage = $storage;
- }
-
- public function fork($id): void
- {
- $this->storage->fork($id);
- }
-
- public function switch($id): void
- {
- $this->storage->switch($id);
- }
-
- public function destroy($id): void
- {
- $this->storage->destroy($id);
- }
-
- public function scope(): ?ContextStorageScopeInterface
- {
- $this->checkFiberMismatch();
-
- if (($scope = $this->storage->scope()) === null) {
- return null;
- }
-
- return new FiberBoundContextStorageScope($scope);
- }
-
- public function current(): ContextInterface
- {
- $this->checkFiberMismatch();
-
- return $this->storage->current();
- }
-
- public function attach(ContextInterface $context): ContextStorageScopeInterface
- {
- $scope = $this->storage->attach($context);
- assert(class_exists(Fiber::class, false));
- $scope[Fiber::class] = Fiber::getCurrent();
-
- return new FiberBoundContextStorageScope($scope);
- }
-
- private function checkFiberMismatch(): void
- {
- $scope = $this->storage->scope();
- assert(class_exists(Fiber::class, false));
- if ($scope && $scope[Fiber::class] !== Fiber::getCurrent()) {
- trigger_error('Fiber context switching not supported', E_USER_WARNING);
- }
- }
-}
diff --git a/vendor/open-telemetry/context/FiberBoundContextStorageScope.php b/vendor/open-telemetry/context/FiberBoundContextStorageScope.php
deleted file mode 100644
index 647552244..000000000
--- a/vendor/open-telemetry/context/FiberBoundContextStorageScope.php
+++ /dev/null
@@ -1,67 +0,0 @@
-<?php
-
-/** @noinspection PhpElementIsNotAvailableInCurrentPhpVersionInspection */
-
-declare(strict_types=1);
-
-namespace OpenTelemetry\Context;
-
-use function assert;
-use function class_exists;
-use Fiber;
-
-/**
- * @internal
- *
- * @phan-file-suppress PhanUndeclaredClassReference
- * @phan-file-suppress PhanUndeclaredClassMethod
- */
-final class FiberBoundContextStorageScope implements ScopeInterface, ContextStorageScopeInterface
-{
- private ContextStorageScopeInterface $scope;
-
- public function __construct(ContextStorageScopeInterface $scope)
- {
- $this->scope = $scope;
- }
-
- public function offsetExists($offset): bool
- {
- return $this->scope->offsetExists($offset);
- }
-
- /**
- * @phan-suppress PhanUndeclaredClassAttribute
- */
- #[\ReturnTypeWillChange]
- public function offsetGet($offset)
- {
- return $this->scope->offsetGet($offset);
- }
-
- public function offsetSet($offset, $value): void
- {
- $this->scope->offsetSet($offset, $value);
- }
-
- public function offsetUnset($offset): void
- {
- $this->scope->offsetUnset($offset);
- }
-
- public function context(): ContextInterface
- {
- return $this->scope->context();
- }
-
- public function detach(): int
- {
- $flags = $this->scope->detach();
- assert(class_exists(Fiber::class, false));
- if ($this->scope[Fiber::class] !== Fiber::getCurrent()) {
- $flags |= ScopeInterface::INACTIVE;
- }
-
- return $flags;
- }
-}
diff --git a/vendor/open-telemetry/context/ImplicitContextKeyedInterface.php b/vendor/open-telemetry/context/ImplicitContextKeyedInterface.php
deleted file mode 100644
index 0af93122c..000000000
--- a/vendor/open-telemetry/context/ImplicitContextKeyedInterface.php
+++ /dev/null
@@ -1,32 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-namespace OpenTelemetry\Context;
-
-/**
- * Represents a value that can be stored within {@see ContextInterface}.
- * Allows storing themselves without exposing a {@see ContextKeyInterface}.
- *
- * @see https://github.com/open-telemetry/opentelemetry-specification/blob/v1.6.1/specification/trace/api.md#context-interaction
- * @see https://github.com/open-telemetry/opentelemetry-specification/blob/v1.6.1/specification/baggage/api.md#context-interaction
- */
-interface ImplicitContextKeyedInterface
-{
- /**
- * Adds `$this` to the {@see Context::getCurrent() current context} and makes
- * the new {@see Context} the current context.
- *
- * {@see ScopeInterface::detach()} _MUST_ be called to properly restore the previous context.
- *
- * This method is equivalent to `Context::getCurrent().with($value).activate();`.
- *
- * @todo: Update this to suggest using the new helper method way to doing something in a specific context/span.
- */
- public function activate(): ScopeInterface;
-
- /**
- * Returns a new {@see ContextInterface} created by setting `$this` into the provided [@see ContextInterface}.
- */
- public function storeInContext(ContextInterface $context): ContextInterface;
-}
diff --git a/vendor/open-telemetry/context/Propagation/ArrayAccessGetterSetter.php b/vendor/open-telemetry/context/Propagation/ArrayAccessGetterSetter.php
deleted file mode 100644
index 51263044d..000000000
--- a/vendor/open-telemetry/context/Propagation/ArrayAccessGetterSetter.php
+++ /dev/null
@@ -1,129 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-namespace OpenTelemetry\Context\Propagation;
-
-use function array_key_first;
-use ArrayAccess;
-use function get_class;
-use function gettype;
-use InvalidArgumentException;
-use function is_array;
-use function is_object;
-use function is_string;
-use function sprintf;
-use function strcasecmp;
-use Traversable;
-
-/**
- * @see https://github.com/open-telemetry/opentelemetry-specification/blob/v1.6.1/specification/context/api-propagators.md#textmap-propagator Getter and Setter.
- *
- * Default implementation of {@see PropagationGetterInterface} and {@see PropagationSetterInterface}.
- * This type is used if no custom getter/setter is provided to {@see TextMapPropagatorInterface::inject()} or {@see TextMapPropagatorInterface::extract()}.
- */
-final class ArrayAccessGetterSetter implements PropagationGetterInterface, PropagationSetterInterface
-{
- private static ?self $instance = null;
-
- /**
- * Returns a singleton instance of `self` to avoid, multiple runtime allocations.
- */
- public static function getInstance(): self
- {
- if (null === self::$instance) {
- self::$instance = new self();
- }
-
- return self::$instance;
- }
-
- /** {@inheritdoc} */
- public function keys($carrier): array
- {
- if ($this->isSupportedCarrier($carrier)) {
- $keys = [];
- foreach ($carrier as $key => $_) {
- $keys[] = (string) $key;
- }
-
- return $keys;
- }
-
- throw new InvalidArgumentException(
- sprintf(
- 'Unsupported carrier type: %s.',
- is_object($carrier) ? get_class($carrier) : gettype($carrier),
- )
- );
- }
-
- /** {@inheritdoc} */
- public function get($carrier, string $key): ?string
- {
- if ($this->isSupportedCarrier($carrier)) {
- $value = $carrier[$this->resolveKey($carrier, $key)] ?? null;
- if (is_array($value) && $value) {
- $value = $value[array_key_first($value)];
- }
-
- return is_string($value)
- ? $value
- : null;
- }
-
- throw new InvalidArgumentException(
- sprintf(
- 'Unsupported carrier type: %s. Unable to get value associated with key:%s',
- is_object($carrier) ? get_class($carrier) : gettype($carrier),
- $key
- )
- );
- }
-
- /** {@inheritdoc} */
- public function set(&$carrier, string $key, string $value): void
- {
- if ($key === '') {
- throw new InvalidArgumentException('Unable to set value with an empty key');
- }
- if ($this->isSupportedCarrier($carrier)) {
- if (($r = $this->resolveKey($carrier, $key)) !== $key) {
- unset($carrier[$r]);
- }
-
- $carrier[$key] = $value;
-
- return;
- }
-
- throw new InvalidArgumentException(
- sprintf(
- 'Unsupported carrier type: %s. Unable to set value associated with key:%s',
- is_object($carrier) ? get_class($carrier) : gettype($carrier),
- $key
- )
- );
- }
-
- private function isSupportedCarrier($carrier): bool
- {
- return is_array($carrier) || $carrier instanceof ArrayAccess && $carrier instanceof Traversable;
- }
-
- private function resolveKey($carrier, string $key): string
- {
- if (isset($carrier[$key])) {
- return $key;
- }
-
- foreach ($carrier as $k => $_) {
- $k = (string) $k;
- if (strcasecmp($k, $key) === 0) {
- return $k;
- }
- }
-
- return $key;
- }
-}
diff --git a/vendor/open-telemetry/context/Propagation/MultiTextMapPropagator.php b/vendor/open-telemetry/context/Propagation/MultiTextMapPropagator.php
deleted file mode 100644
index 075fe98fe..000000000
--- a/vendor/open-telemetry/context/Propagation/MultiTextMapPropagator.php
+++ /dev/null
@@ -1,83 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-namespace OpenTelemetry\Context\Propagation;
-
-use function array_map;
-use function array_merge;
-use function array_unique;
-use function array_values;
-use OpenTelemetry\Context\Context;
-use OpenTelemetry\Context\ContextInterface;
-
-final class MultiTextMapPropagator implements TextMapPropagatorInterface
-{
- /**
- * @readonly
- *
- * @var list<TextMapPropagatorInterface>
- */
- private array $propagators = [];
-
- /**
- * @readonly
- *
- * @var list<string>
- */
- private array $fields;
-
- /**
- * @no-named-arguments
- *
- * @param list<TextMapPropagatorInterface> $propagators
- */
- public function __construct(array $propagators)
- {
- $this->propagators = $propagators;
- $this->fields = $this->extractFields($propagators);
- }
-
- public function fields(): array
- {
- return $this->fields;
- }
-
- public function inject(&$carrier, PropagationSetterInterface $setter = null, ContextInterface $context = null): void
- {
- foreach ($this->propagators as $propagator) {
- $propagator->inject($carrier, $setter, $context);
- }
- }
-
- public function extract($carrier, PropagationGetterInterface $getter = null, ContextInterface $context = null): ContextInterface
- {
- $context ??= Context::getCurrent();
-
- foreach ($this->propagators as $propagator) {
- $context = $propagator->extract($carrier, $getter, $context);
- }
-
- return $context;
- }
-
- /**
- * @param list<TextMapPropagatorInterface> $propagators
- * @return list<string>
- */
- private function extractFields(array $propagators): array
- {
- return array_values(
- array_unique(
- // Phan seems to struggle here with the variadic argument
- // @phan-suppress-next-line PhanParamTooFewInternalUnpack
- array_merge(
- ...array_map(
- static fn (TextMapPropagatorInterface $propagator) => $propagator->fields(),
- $propagators
- )
- )
- )
- );
- }
-}
diff --git a/vendor/open-telemetry/context/Propagation/NoopTextMapPropagator.php b/vendor/open-telemetry/context/Propagation/NoopTextMapPropagator.php
deleted file mode 100644
index c408cfc79..000000000
--- a/vendor/open-telemetry/context/Propagation/NoopTextMapPropagator.php
+++ /dev/null
@@ -1,36 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-namespace OpenTelemetry\Context\Propagation;
-
-use OpenTelemetry\Context\Context;
-use OpenTelemetry\Context\ContextInterface;
-
-final class NoopTextMapPropagator implements TextMapPropagatorInterface
-{
- private static ?self $instance = null;
-
- public static function getInstance(): self
- {
- if (null === self::$instance) {
- self::$instance = new self();
- }
-
- return self::$instance;
- }
-
- public function fields(): array
- {
- return [];
- }
-
- public function extract($carrier, PropagationGetterInterface $getter = null, ContextInterface $context = null): ContextInterface
- {
- return $context ?? Context::getCurrent();
- }
-
- public function inject(&$carrier, PropagationSetterInterface $setter = null, ContextInterface $context = null): void
- {
- }
-}
diff --git a/vendor/open-telemetry/context/Propagation/PropagationGetterInterface.php b/vendor/open-telemetry/context/Propagation/PropagationGetterInterface.php
deleted file mode 100644
index d2976c63d..000000000
--- a/vendor/open-telemetry/context/Propagation/PropagationGetterInterface.php
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-namespace OpenTelemetry\Context\Propagation;
-
-/**
- * @see https://github.com/open-telemetry/opentelemetry-specification/blob/v1.6.1/specification/context/api-propagators.md#getter-argument
- */
-interface PropagationGetterInterface
-{
- /**
- * Returns the list of all the keys in the carrier.
- *
- * @see https://github.com/open-telemetry/opentelemetry-specification/blob/v1.6.1/specification/context/api-propagators.md#keys
- *
- * @return list<string>
- */
- public function keys($carrier): array;
-
- /**
- * Gets the value of a given key from a carrier.
- */
- public function get($carrier, string $key) : ?string;
-}
diff --git a/vendor/open-telemetry/context/Propagation/PropagationSetterInterface.php b/vendor/open-telemetry/context/Propagation/PropagationSetterInterface.php
deleted file mode 100644
index 75e205628..000000000
--- a/vendor/open-telemetry/context/Propagation/PropagationSetterInterface.php
+++ /dev/null
@@ -1,16 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-namespace OpenTelemetry\Context\Propagation;
-
-/**
- * @see https://github.com/open-telemetry/opentelemetry-specification/blob/v1.6.1/specification/context/api-propagators.md#setter-argument
- */
-interface PropagationSetterInterface
-{
- /**
- * Set the value for a given key on the associated carrier.
- */
- public function set(&$carrier, string $key, string $value) : void;
-}
diff --git a/vendor/open-telemetry/context/Propagation/SanitizeCombinedHeadersPropagationGetter.php b/vendor/open-telemetry/context/Propagation/SanitizeCombinedHeadersPropagationGetter.php
deleted file mode 100644
index 40652982e..000000000
--- a/vendor/open-telemetry/context/Propagation/SanitizeCombinedHeadersPropagationGetter.php
+++ /dev/null
@@ -1,46 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-namespace OpenTelemetry\Context\Propagation;
-
-use function preg_replace;
-
-/**
- * Some servers concatenate multiple headers with ';' -- we need to replace these with ','
- * This is still a workaround and doesn't get around the problem fully, specifically it doesn't
- * handle edge cases where the header has a trailing ';' or an empty trace state.
- * We also need to trim trailing separators from the header, found when a header is empty.
- */
-final class SanitizeCombinedHeadersPropagationGetter implements PropagationGetterInterface
-{
- private const LIST_MEMBERS_SEPARATOR = ',';
- private const SERVER_CONCAT_HEADERS_REGEX = '/;(?=[^,=;]*=|$)/';
- private const TRAILING_LEADING_SEPARATOR_REGEX = '/^' . self::LIST_MEMBERS_SEPARATOR . '+|' . self::LIST_MEMBERS_SEPARATOR . '+$/';
-
- private PropagationGetterInterface $getter;
-
- public function __construct(PropagationGetterInterface $getter)
- {
- $this->getter = $getter;
- }
-
- public function keys($carrier): array
- {
- return $this->getter->keys($carrier);
- }
-
- public function get($carrier, string $key): ?string
- {
- $value = $this->getter->get($carrier, $key);
- if ($value === null) {
- return null;
- }
-
- return preg_replace(
- [self::SERVER_CONCAT_HEADERS_REGEX, self::TRAILING_LEADING_SEPARATOR_REGEX],
- [self::LIST_MEMBERS_SEPARATOR],
- $value,
- );
- }
-}
diff --git a/vendor/open-telemetry/context/Propagation/TextMapPropagatorInterface.php b/vendor/open-telemetry/context/Propagation/TextMapPropagatorInterface.php
deleted file mode 100644
index fdf2d5141..000000000
--- a/vendor/open-telemetry/context/Propagation/TextMapPropagatorInterface.php
+++ /dev/null
@@ -1,40 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-namespace OpenTelemetry\Context\Propagation;
-
-use OpenTelemetry\Context\ContextInterface;
-
-/**
- * @see https://github.com/open-telemetry/opentelemetry-specification/blob/v1.6.1/specification/context/api-propagators.md#textmap-propagator
- */
-interface TextMapPropagatorInterface
-{
- /**
- * Returns list of fields that will be used by this propagator.
- *
- * @see https://github.com/open-telemetry/opentelemetry-specification/blob/v1.6.1/specification/context/api-propagators.md#fields
- *
- * @return list<string>
- */
- public function fields() : array;
-
- /**
- * Injects specific values from the provided {@see ContextInterface} into the provided carrier
- * via an {@see PropagationSetterInterface}.
- *
- * @see https://github.com/open-telemetry/opentelemetry-specification/blob/v1.6.1/specification/context/api-propagators.md#textmap-inject
- *
- * @param mixed $carrier
- */
- public function inject(&$carrier, PropagationSetterInterface $setter = null, ContextInterface $context = null): void;
-
- /**
- * Extracts specific values from the provided carrier into the provided {@see ContextInterface}
- * via an {@see PropagationGetterInterface}.
- *
- * @see https://github.com/open-telemetry/opentelemetry-specification/blob/v1.6.1/specification/context/api-propagators.md#textmap-extract
- */
- public function extract($carrier, PropagationGetterInterface $getter = null, ContextInterface $context = null): ContextInterface;
-}
diff --git a/vendor/open-telemetry/context/README.md b/vendor/open-telemetry/context/README.md
deleted file mode 100644
index 4dfe0e23f..000000000
--- a/vendor/open-telemetry/context/README.md
+++ /dev/null
@@ -1,63 +0,0 @@
-[![Releases](https://img.shields.io/badge/releases-purple)](https://github.com/opentelemetry-php/context/releases)
-[![Source](https://img.shields.io/badge/source-context-green)](https://github.com/open-telemetry/opentelemetry-php/tree/main/src/Context)
-[![Mirror](https://img.shields.io/badge/mirror-opentelemetry--php:context-blue)](https://github.com/opentelemetry-php/context)
-[![Latest Version](http://poser.pugx.org/open-telemetry/context/v/unstable)](https://packagist.org/packages/open-telemetry/context/)
-[![Stable](http://poser.pugx.org/open-telemetry/context/v/stable)](https://packagist.org/packages/open-telemetry/context/)
-
-# OpenTelemetry Context
-
-Immutable execution scoped propagation mechanism, for further details see [opentelemetry-specification][1].
-
-## Installation
-
-```shell
-composer require open-telemetry/context
-```
-
-## Usage
-
-### Implicit propagation
-
-```php
-$context = Context::getCurrent();
-// modify context
-$scope = $context->activate();
-try {
- // run within new context
-} finally {
- $scope->detach();
-}
-```
-
-It is recommended to use a `try-finally` statement after `::activate()` to ensure that the created scope is properly `::detach()`ed.
-
-## Async applications
-
-### Fiber support
-
-Requires `PHP >= 8.1`, an NTS build, `ext-ffi`, and setting the environment variable `OTEL_PHP_FIBERS_ENABLED` to a truthy value. Additionally `vendor/autoload.php` has to be preloaded for non-CLI SAPIs if [`ffi.enable`](https://www.php.net/manual/en/ffi.configuration.php#ini.ffi.enable) is set to `preload`.
-
-### Event loops
-
-Event loops have to restore the original context on callback execution. A basic implementation could look like the following, though implementations should avoid keeping unnecessary references to arguments if possible:
-
-```php
-function bindContext(Closure $closure): Closure {
- $context = Context::getCurrent();
- return static function (mixed ...$args) use ($closure, $context): mixed {
- $scope = $context->activate();
- try {
- return $closure(...$args);
- } finally {
- $scope->detach();
- }
- };
-}
-```
-
-## Contributing
-
-This repository is a read-only git subtree split.
-To contribute, please see the main [OpenTelemetry PHP monorepo](https://github.com/open-telemetry/opentelemetry-php).
-
-[1]: https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/context/README.md#context
diff --git a/vendor/open-telemetry/context/ScopeInterface.php b/vendor/open-telemetry/context/ScopeInterface.php
deleted file mode 100644
index 05319b8fc..000000000
--- a/vendor/open-telemetry/context/ScopeInterface.php
+++ /dev/null
@@ -1,32 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-namespace OpenTelemetry\Context;
-
-use const PHP_INT_SIZE;
-
-interface ScopeInterface
-{
- /** The associated context was already detached. */
- public const DETACHED = 1 << (PHP_INT_SIZE << 3) - 1;
- /** The associated context is not in the active execution context. */
- public const INACTIVE = 1 << (PHP_INT_SIZE << 3) - 2;
- /** The associated context is not the active context. */
- public const MISMATCH = 1 << (PHP_INT_SIZE << 3) - 3;
-
- /**
- * Detaches the context associated with this scope and restores the
- * previously associated context.
- *
- * @return int zero indicating an expected call, or a non-zero value
- * indicating that the call was unexpected
- *
- * @see self::DETACHED
- * @see self::INACTIVE
- * @see self::MISMATCH
- *
- * @see https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/context/README.md#detach-context
- */
- public function detach(): int;
-}
diff --git a/vendor/open-telemetry/context/ZendObserverFiber.php b/vendor/open-telemetry/context/ZendObserverFiber.php
deleted file mode 100644
index 4d3d0c5ef..000000000
--- a/vendor/open-telemetry/context/ZendObserverFiber.php
+++ /dev/null
@@ -1,67 +0,0 @@
-<?php
-
-/** @noinspection PhpUndefinedMethodInspection */
-/** @phan-file-suppress PhanUndeclaredClassCatch */
-/** @phan-file-suppress PhanUndeclaredClassMethod */
-/** @phan-file-suppress PhanUndeclaredMethod */
-
-declare(strict_types=1);
-
-namespace OpenTelemetry\Context;
-
-use function extension_loaded;
-use FFI;
-use const FILTER_VALIDATE_BOOLEAN;
-use function filter_var;
-use function is_string;
-use const PHP_VERSION_ID;
-use const PHP_ZTS;
-use function sprintf;
-use function trigger_error;
-
-/**
- * @internal
- */
-final class ZendObserverFiber
-{
- public static function isEnabled(): bool
- {
- $enabled = $_SERVER['OTEL_PHP_FIBERS_ENABLED'] ?? false;
-
- return is_string($enabled)
- ? filter_var($enabled, FILTER_VALIDATE_BOOLEAN)
- : (bool) $enabled;
- }
-
- public static function init(): bool
- {
- static $fibers;
- if ($fibers) {
- return true;
- }
-
- if (PHP_ZTS || PHP_VERSION_ID < 80100 || !extension_loaded('ffi')) {
- trigger_error('Context: Fiber context switching not supported, requires PHP >= 8.1, an NTS build, and the FFI extension');
-
- return false;
- }
-
- try {
- $fibers = FFI::scope('OTEL_ZEND_OBSERVER_FIBER');
- } catch (FFI\Exception $e) {
- try {
- $fibers = FFI::load(__DIR__ . '/fiber/zend_observer_fiber.h');
- } catch (FFI\Exception $e) {
- trigger_error(sprintf('Context: Fiber context switching not supported, %s', $e->getMessage()));
-
- return false;
- }
- }
-
- $fibers->zend_observer_fiber_init_register(static fn (int $initializing) => Context::storage()->fork($initializing)); //@phpstan-ignore-line
- $fibers->zend_observer_fiber_switch_register(static fn (int $from, int $to) => Context::storage()->switch($to)); //@phpstan-ignore-line
- $fibers->zend_observer_fiber_destroy_register(static fn (int $destroying) => Context::storage()->destroy($destroying)); //@phpstan-ignore-line
-
- return true;
- }
-}
diff --git a/vendor/open-telemetry/context/composer.json b/vendor/open-telemetry/context/composer.json
deleted file mode 100644
index 348b57f73..000000000
--- a/vendor/open-telemetry/context/composer.json
+++ /dev/null
@@ -1,41 +0,0 @@
-{
- "name": "open-telemetry/context",
- "description": "Context implementation for OpenTelemetry PHP.",
- "keywords": ["opentelemetry", "otel", "context"],
- "type": "library",
- "support": {
- "issues": "https://github.com/open-telemetry/opentelemetry-php/issues",
- "source": "https://github.com/open-telemetry/opentelemetry-php",
- "docs": "https://opentelemetry.io/docs/php",
- "chat": "https://app.slack.com/client/T08PSQ7BQ/C01NFPCV44V"
- },
- "license": "Apache-2.0",
- "authors": [
- {
- "name": "opentelemetry-php contributors",
- "homepage": "https://github.com/open-telemetry/opentelemetry-php/graphs/contributors"
- }
- ],
- "require": {
- "php": "^7.4 || ^8.0",
- "symfony/polyfill-php80": "^1.26",
- "symfony/polyfill-php81": "^1.26",
- "symfony/polyfill-php82": "^1.26"
- },
- "autoload": {
- "psr-4": {
- "OpenTelemetry\\Context\\": "."
- },
- "files": [
- "fiber/initialize_fiber_handler.php"
- ]
- },
- "suggest": {
- "ext-ffi": "To allow context switching in Fibers"
- },
- "extra": {
- "branch-alias": {
- "dev-main": "1.0.x-dev"
- }
- }
-}
diff --git a/vendor/open-telemetry/context/fiber/initialize_fiber_handler.php b/vendor/open-telemetry/context/fiber/initialize_fiber_handler.php
deleted file mode 100644
index b9c706395..000000000
--- a/vendor/open-telemetry/context/fiber/initialize_fiber_handler.php
+++ /dev/null
@@ -1,20 +0,0 @@
-<?php
-
-/** @noinspection PhpElementIsNotAvailableInCurrentPhpVersionInspection */
-/** @phan-file-suppress PhanUndeclaredClassReference */
-
-declare(strict_types=1);
-
-namespace OpenTelemetry\Context;
-
-use Fiber;
-
-if (!class_exists(Fiber::class)) {
- return;
-}
-
-if (ZendObserverFiber::isEnabled() && ZendObserverFiber::init()) {
- // ffi fiber support enabled
-} else {
- Context::setStorage(new FiberBoundContextStorage(Context::storage()));
-}
diff --git a/vendor/open-telemetry/context/fiber/zend_observer_fiber.h b/vendor/open-telemetry/context/fiber/zend_observer_fiber.h
deleted file mode 100644
index 6a8e4e98d..000000000
--- a/vendor/open-telemetry/context/fiber/zend_observer_fiber.h
+++ /dev/null
@@ -1,9 +0,0 @@
-#define FFI_SCOPE "OTEL_ZEND_OBSERVER_FIBER"
-
-typedef void (*zend_observer_fiber_init_handler)(intptr_t initializing);
-typedef void (*zend_observer_fiber_switch_handler)(intptr_t from, intptr_t to);
-typedef void (*zend_observer_fiber_destroy_handler)(intptr_t destroying);
-
-void zend_observer_fiber_init_register(zend_observer_fiber_init_handler handler);
-void zend_observer_fiber_switch_register(zend_observer_fiber_switch_handler handler);
-void zend_observer_fiber_destroy_register(zend_observer_fiber_destroy_handler handler);