Skip to content

Commit ca39267

Browse files
authored
Set X-Request-ID to server globals (#4)
Set X-Request-ID to server globals
1 parent 0b51b38 commit ca39267

File tree

2 files changed

+16
-2
lines changed

2 files changed

+16
-2
lines changed

src/RequestId.php

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,15 +24,19 @@ class RequestId
2424
public function handle(Request $request, \Closure $next, $guard = null)
2525
{
2626
$uuid = $request->headers->get('X-Request-ID');
27+
2728
if (is_null($uuid)) {
2829
$uuid = Uuid::uuid4()->toString();
30+
2931
$request->headers->set('X-Request-ID', $uuid);
3032
}
3133

34+
$_SERVER['HTTP_X_REQUEST_ID'] = $uuid;
35+
3236
$response = $next($request);
3337

3438
$response->headers->set('X-Request-ID', $uuid);
3539

3640
return $response;
3741
}
38-
}
42+
}

tests/RequestIdTest.php

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,11 @@ public function testRequestIdShouldBeFilledIfDoesNotExistInRequestAndResponse()
4646
$request->header('X-Request-ID'),
4747
'The same X-Request-ID must be set in request and response.'
4848
);
49+
$this->assertEquals(
50+
$response->headers->get('X-Request-ID'),
51+
$_SERVER['HTTP_X_REQUEST_ID'],
52+
'The same X-Request-ID must be set in server globals.'
53+
);
4954
}
5055

5156
public function testPropagateRequestIdToResponseIfProvidedInRequest()
@@ -72,5 +77,10 @@ public function testPropagateRequestIdToResponseIfProvidedInRequest()
7277
$response->headers->get('X-Request-ID'),
7378
'The request X-Request-ID header must be set in the response.'
7479
);
80+
$this->assertEquals(
81+
'09226165-364a-461a-bf5c-e859d70d907e',
82+
$_SERVER['HTTP_X_REQUEST_ID'],
83+
'The same X-Request-ID must be set in server globals.'
84+
);
7585
}
76-
}
86+
}

0 commit comments

Comments
 (0)