56 lines
1.5 KiB
PHP
56 lines
1.5 KiB
PHP
<?php
|
|
|
|
/**
|
|
* Slim Framework (https://slimframework.com)
|
|
*
|
|
* @license https://github.com/slimphp/Slim-Psr7/blob/master/LICENSE.md (MIT License)
|
|
*/
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace Slim\Psr7;
|
|
|
|
use function array_merge;
|
|
use function microtime;
|
|
use function time;
|
|
|
|
class Environment
|
|
{
|
|
/**
|
|
* @param array $data Array of custom environment keys and values
|
|
*
|
|
* @return array
|
|
*/
|
|
public static function mock(array $data = []): array
|
|
{
|
|
if (
|
|
(isset($data['HTTPS']) && $data['HTTPS'] !== 'off')
|
|
|| ((isset($data['REQUEST_SCHEME']) && $data['REQUEST_SCHEME'] === 'https'))
|
|
) {
|
|
$scheme = 'https';
|
|
$port = 443;
|
|
} else {
|
|
$scheme = 'http';
|
|
$port = 80;
|
|
}
|
|
|
|
return array_merge([
|
|
'HTTP_ACCEPT' => 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
|
|
'HTTP_ACCEPT_CHARSET' => 'ISO-8859-1,utf-8;q=0.7,*;q=0.3',
|
|
'HTTP_ACCEPT_LANGUAGE' => 'en-US,en;q=0.8',
|
|
'HTTP_USER_AGENT' => 'Slim Framework',
|
|
'QUERY_STRING' => '',
|
|
'REMOTE_ADDR' => '127.0.0.1',
|
|
'REQUEST_METHOD' => 'GET',
|
|
'REQUEST_SCHEME' => $scheme,
|
|
'REQUEST_TIME' => time(),
|
|
'REQUEST_TIME_FLOAT' => microtime(true),
|
|
'REQUEST_URI' => '',
|
|
'SCRIPT_NAME' => '',
|
|
'SERVER_NAME' => 'localhost',
|
|
'SERVER_PORT' => $port,
|
|
'SERVER_PROTOCOL' => 'HTTP/1.1',
|
|
], $data);
|
|
}
|
|
}
|