Phly\Http\ServerRequestFactory::normalizeServer PHP Method

normalizeServer() public static method

Pre-processes and returns the $_SERVER superglobal.
public static normalizeServer ( array $server ) : array
$server array
return array
    public static function normalizeServer(array $server)
    {
        // This seems to be the only way to get the Authorization header on Apache
        $apacheRequestHeaders = self::$apacheRequestHeaders;
        if (isset($server['HTTP_AUTHORIZATION']) || !is_callable($apacheRequestHeaders)) {
            return $server;
        }
        $apacheRequestHeaders = $apacheRequestHeaders();
        if (isset($apacheRequestHeaders['Authorization'])) {
            $server['HTTP_AUTHORIZATION'] = $apacheRequestHeaders['Authorization'];
            return $server;
        }
        if (isset($apacheRequestHeaders['authorization'])) {
            $server['HTTP_AUTHORIZATION'] = $apacheRequestHeaders['authorization'];
            return $server;
        }
        return $server;
    }

Usage Example

 public function testNormalizeServerReturnsArrayUnalteredIfApacheHeadersDoNotContainAuthorization()
 {
     $r = new ReflectionProperty('Phly\\Http\\ServerRequestFactory', 'apacheRequestHeaders');
     $r->setAccessible(true);
     $r->setValue(function () {
         return [];
     });
     $expected = ['FOO_BAR' => 'BAZ'];
     $server = ServerRequestFactory::normalizeServer($expected);
     $this->assertEquals($expected, $server);
 }