1414use  OpenTelemetry \API \Metrics \MeterProviderInterface ;
1515use  OpenTelemetry \API \Trace \TracerProviderInterface ;
1616use  OpenTelemetry \Context \Context ;
17+ use  OpenTelemetry \Context \Propagation \ResponsePropagatorInterface ;
1718use  OpenTelemetry \Context \Propagation \TextMapPropagatorInterface ;
1819use  function  sprintf ;
1920use  Throwable ;
@@ -35,6 +36,7 @@ public function __construct(
3536        private  readonly  LoggerProviderInterface $ loggerProvider
3637        private  readonly  EventLoggerProviderInterface $ eventLoggerProvider
3738        private  readonly  TextMapPropagatorInterface $ propagator
39+         private  readonly  ResponsePropagatorInterface $ responsePropagator
3840    ) {
3941    }
4042
@@ -53,6 +55,14 @@ public static function propagator(): TextMapPropagatorInterface
5355        return  Context::getCurrent ()->get (ContextKeys::propagator ()) ?? self ::globals ()->propagator ;
5456    }
5557
58+     /** 
59+      * @experimental 
60+      */ 
61+     public  static  function  responsePropagator (): ResponsePropagatorInterface 
62+     {
63+         return  Context::getCurrent ()->get (ContextKeys::responsePropagator ()) ?? self ::globals ()->responsePropagator ;
64+     }
65+ 
5666    public  static  function  loggerProvider (): LoggerProviderInterface 
5767    {
5868        return  Context::getCurrent ()->get (ContextKeys::loggerProvider ()) ?? self ::globals ()->loggerProvider ;
@@ -107,12 +117,13 @@ private static function globals(): self
107117        $ tracerProvider$ contextget (ContextKeys::tracerProvider ());
108118        $ meterProvider$ contextget (ContextKeys::meterProvider ());
109119        $ propagator$ contextget (ContextKeys::propagator ());
120+         $ responsePropagator$ contextget (ContextKeys::responsePropagator ());
110121        $ loggerProvider$ contextget (ContextKeys::loggerProvider ());
111122        $ eventLoggerProvider$ contextget (ContextKeys::eventLoggerProvider ());
112123
113-         assert (isset ($ tracerProvider$ meterProvider$ loggerProvider$ eventLoggerProvider$ propagator
124+         assert (isset ($ tracerProvider$ meterProvider$ loggerProvider$ eventLoggerProvider$ propagator,  $ responsePropagator 
114125
115-         return  self ::$ globalsnew  self ($ tracerProvider$ meterProvider$ loggerProvider$ eventLoggerProvider$ propagator
126+         return  self ::$ globalsnew  self ($ tracerProvider$ meterProvider$ loggerProvider$ eventLoggerProvider$ propagator,  $ responsePropagator 
116127    }
117128
118129    /** 
0 commit comments