Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. BaggagePropagator.php

function BaggagePropagator::inject

Overrides TextMapPropagatorInterface::inject

File

vendor/open-telemetry/api/Baggage/Propagation/BaggagePropagator.php, line 42

Class

BaggagePropagator

Namespace

OpenTelemetry\API\Baggage\Propagation

Code

public function inject(&$carrier, ?PropagationSetterInterface $setter = null, ?ContextInterface $context = null) : void {
    $setter ??= ArrayAccessGetterSetter::getInstance();
    $context ??= Context::getCurrent();
    $baggage = Baggage::fromContext($context);
    if ($baggage->isEmpty()) {
        return;
    }
    $headerString = '';
    
    /** @var Entry $entry */
    foreach ($baggage->getAll() as $key => $entry) {
        $value = urlencode((string) $entry->getValue());
        $headerString .= "{$key}={$value}";
        if (($metadata = $entry->getMetadata()
            ->getValue()) !== '' && ($metadata = $entry->getMetadata()
            ->getValue()) !== '0') {
            $headerString .= ";{$metadata}";
        }
        $headerString .= ',';
    }
    if ($headerString !== '' && $headerString !== '0') {
        $headerString = rtrim($headerString, ',');
        $setter->set($carrier, self::BAGGAGE, $headerString);
    }
}

API Navigation

  • Drupal Core 11.1.x
  • Topics
  • Classes
  • Functions
  • Constants
  • Globals
  • Files
  • Namespaces
  • Deprecated
  • Services
RSS feed
Powered by Drupal