withTracerProvider(new NoopTracerProvider()) ->withMeterProvider(new NoopMeterProvider()) ->withPropagator(new NoopTextMapPropagator()) ->withLoggerProvider(new NoopLoggerProvider()) ; } public function activate(): ScopeInterface { return $this->storeInContext()->activate(); } public function storeInContext(?ContextInterface $context = null): ContextInterface { $context ??= Context::getCurrent(); if ($this->tracerProvider !== null) { $context = $context->with(ContextKeys::tracerProvider(), $this->tracerProvider); } if ($this->meterProvider !== null) { $context = $context->with(ContextKeys::meterProvider(), $this->meterProvider); } if ($this->propagator !== null) { $context = $context->with(ContextKeys::propagator(), $this->propagator); } if ($this->loggerProvider !== null) { $context = $context->with(ContextKeys::loggerProvider(), $this->loggerProvider); } return $context; } public function withTracerProvider(?TracerProviderInterface $tracerProvider): Configurator { $self = clone $this; $self->tracerProvider = $tracerProvider; return $self; } public function withMeterProvider(?MeterProviderInterface $meterProvider): Configurator { $self = clone $this; $self->meterProvider = $meterProvider; return $self; } public function withPropagator(?TextMapPropagatorInterface $propagator): Configurator { $self = clone $this; $self->propagator = $propagator; return $self; } public function withLoggerProvider(?LoggerProviderInterface $loggerProvider): Configurator { $self = clone $this; $self->loggerProvider = $loggerProvider; return $self; } }