<?php namespace ZipkinOpenTracing; use OpenTracing\Span as OTSpan; use OpenTracing\SpanContext as OTSpanContext; use Zipkin\Span as ZipkinSpan; use ZipkinOpenTracing\SpanContext as ZipkinOpenTracingContext; final class NoopSpan implements OTSpan { /** * @var OTSpanContext|SpanContext */ private $context; private function __construct(ZipkinSpan $span) { $this->context = ZipkinOpenTracingContext::fromTraceContext($span->getContext()); } /** * @param ZipkinSpan $span * @return NoopSpan */ public static function create(ZipkinSpan $span) { return new self($span); } /** * @return string */ public function getOperationName() { return ''; } /** * {@inheritdoc} */ public function getContext() { return $this->context; } /** * {@inheritdoc} */ public function finish($finishTime = null, array $logRecords = []) { } /** * {@inheritdoc} */ public function overwriteOperationName($newOperationName) { } /** * {@inheritdoc} */ public function setTag($key, $value) { } /** * {@inheritdoc} */ public function log(array $fields = [], $timestamp = null) { } /** * Adds a baggage item to the SpanContext which is immutable so it is required to use * SpanContext::withBaggageItem to get a new one. * * If the span is already finished, a warning should be logged. * * @param string $key * @param string $value */ public function addBaggageItem($key, $value) { } /** * @param string $key * @return string */ public function getBaggageItem($key) { return ''; } }