Factory
2 months ago
Interfaces
2 months ago
Cookies.php
2 months ago
Environment.php
2 months ago
Header.php
2 months ago
Headers.php
2 months ago
Message.php
2 months ago
NonBufferedBody.php
2 months ago
Request.php
2 months ago
Response.php
2 months ago
Stream.php
2 months ago
UploadedFile.php
2 months ago
Uri.php
2 months ago
Environment.php
56 lines
| 1 | <?php |
| 2 | |
| 3 | /** |
| 4 | * Slim Framework (https://slimframework.com) |
| 5 | * |
| 6 | * @license https://github.com/slimphp/Slim-Psr7/blob/master/LICENSE.md (MIT License) |
| 7 | */ |
| 8 | |
| 9 | declare(strict_types=1); |
| 10 | |
| 11 | namespace Slim\Psr7; |
| 12 | |
| 13 | use function array_merge; |
| 14 | use function microtime; |
| 15 | use function time; |
| 16 | |
| 17 | class Environment |
| 18 | { |
| 19 | /** |
| 20 | * @param array $data Array of custom environment keys and values |
| 21 | * |
| 22 | * @return array |
| 23 | */ |
| 24 | public static function mock(array $data = []): array |
| 25 | { |
| 26 | if ( |
| 27 | (isset($data['HTTPS']) && $data['HTTPS'] !== 'off') |
| 28 | || ((isset($data['REQUEST_SCHEME']) && $data['REQUEST_SCHEME'] === 'https')) |
| 29 | ) { |
| 30 | $scheme = 'https'; |
| 31 | $port = 443; |
| 32 | } else { |
| 33 | $scheme = 'http'; |
| 34 | $port = 80; |
| 35 | } |
| 36 | |
| 37 | return array_merge([ |
| 38 | 'HTTP_ACCEPT' => 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', |
| 39 | 'HTTP_ACCEPT_CHARSET' => 'ISO-8859-1,utf-8;q=0.7,*;q=0.3', |
| 40 | 'HTTP_ACCEPT_LANGUAGE' => 'en-US,en;q=0.8', |
| 41 | 'HTTP_USER_AGENT' => 'Slim Framework', |
| 42 | 'QUERY_STRING' => '', |
| 43 | 'REMOTE_ADDR' => '127.0.0.1', |
| 44 | 'REQUEST_METHOD' => 'GET', |
| 45 | 'REQUEST_SCHEME' => $scheme, |
| 46 | 'REQUEST_TIME' => time(), |
| 47 | 'REQUEST_TIME_FLOAT' => microtime(true), |
| 48 | 'REQUEST_URI' => '', |
| 49 | 'SCRIPT_NAME' => '', |
| 50 | 'SERVER_NAME' => 'localhost', |
| 51 | 'SERVER_PORT' => $port, |
| 52 | 'SERVER_PROTOCOL' => 'HTTP/1.1', |
| 53 | ], $data); |
| 54 | } |
| 55 | } |
| 56 |