Beispiel #1
0
 public static function createFromGlobals()
 {
     if (!isset($_SERVER['REQUEST_METHOD'], $_SERVER['HTTP_HOST'], $_SERVER['REQUEST_URI'])) {
         throw new HttpException('Missing required fields in global $_SERVER - [REQUEST_METHOD, HTTP_HOST, REQUEST_URI]');
     }
     $method = strtolower($_SERVER['REQUEST_METHOD']);
     if (!in_array($method, self::METHODS)) {
         throw new HttpException('Unsupported request method ' . $method);
     }
     if ($method === 'get') {
         $data = $_GET;
     } else {
         if ($method === 'post') {
             $data = $_POST;
         } else {
             // PHP does not automatically populate $_PUT and $_DELETE variables
             $body = file_get_contents('php://input');
             // HTTP_CONTENT_TYPE - PHP built-in server; CONTENT_TYPE - everything else
             $contentType = $_SERVER['HTTP_CONTENT_TYPE'] ?? $_SERVER['CONTENT_TYPE'] ?? '';
             $contentType = strtolower($contentType);
             if (strpos($contentType, 'application/json') !== false) {
                 $data = json_decode($body, true);
             } else {
                 parse_str($body, $data);
             }
         }
     }
     return new static($method, Uri::createFromGlobals(), $data, $_FILES ?? [], $_SERVER['HTTP_REFERER'] ?? '');
 }
Beispiel #2
0
var_dump('host=' . $uri->getHost());
var_dump('port=' . $uri->getPort());
var_dump('path=' . $uri->getPath());
var_dump('query=' . $uri->getQuery());
var_dump('query params=', $uri->getQueryParameters());
var_dump('fragment=' . $uri->getFragment());
echo $uri->getRelative(), PHP_EOL;
echo $uri->setScheme('https'), PHP_EOL;
echo $uri->setAuth(''), PHP_EOL;
echo $uri->setAuth('j2'), PHP_EOL;
echo $uri->setPort(80), PHP_EOL;
echo $uri->setPort(7070), PHP_EOL;
echo $uri->setHost('foobar.baz'), PHP_EOL;
echo $uri->setPath('/wow'), PHP_EOL;
echo $uri->setQueryParameter('ran', 't'), PHP_EOL;
$uri2 = new Uri('/foo/bar');
var_dump('protocol=' . $uri2->getScheme());
var_dump('username='******'password='******'host=' . $uri2->getHost());
var_dump('port=' . $uri2->getPort());
var_dump('path=' . $uri2->getPath());
var_dump('query=' . $uri2->getQuery());
var_dump('query params=', $uri2->getQueryParameters());
var_dump('fragment=' . $uri2->getFragment());
$tryCatch = function (string $func, ...$params) use(&$uri2) {
    try {
        $uri2->{$func}(...$params);
    } catch (UriException $e) {
        echo $e->getMessage(), PHP_EOL;
    }