32 lines
731 B
PHP
32 lines
731 B
PHP
|
|
<?php
|
||
|
|
declare(strict_types=1);
|
||
|
|
|
||
|
|
namespace Phred\Http;
|
||
|
|
|
||
|
|
use Psr\Http\Message\ServerRequestInterface;
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Minimal request context holder for the current request during dispatch.
|
||
|
|
* DispatchMiddleware sets/clears it around controller invocation so that
|
||
|
|
* other services (e.g., response factory selector) can inspect negotiation.
|
||
|
|
*/
|
||
|
|
final class RequestContext
|
||
|
|
{
|
||
|
|
private static ?ServerRequestInterface $current = null;
|
||
|
|
|
||
|
|
public static function set(ServerRequestInterface $request): void
|
||
|
|
{
|
||
|
|
self::$current = $request;
|
||
|
|
}
|
||
|
|
|
||
|
|
public static function get(): ?ServerRequestInterface
|
||
|
|
{
|
||
|
|
return self::$current;
|
||
|
|
}
|
||
|
|
|
||
|
|
public static function clear(): void
|
||
|
|
{
|
||
|
|
self::$current = null;
|
||
|
|
}
|
||
|
|
}
|