public function load(): Request
    {
        global $argv;

        $this
            ->setArgs($argv)
            ->setContent(file_get_contents('php://input'));

        if (isset($_COOKIE)) {
            $this->setCookies($_COOKIE);
        }

        // @codeCoverageIgnoreStart
        if (isset($_SESSION)) {
            $this->setSession($_SESSION);
        }
        // @codeCoverageIgnoreEnd

        if (isset($_GET)) {
            $this->setGet($_GET)->setStage($_GET);
        }

        if (isset($_POST)) {
            $this->setPost($_POST)->setStage($_POST);
        }

        if (isset($_FILES)) {
            $this->setFiles($_FILES);
        }

        if (isset($_SERVER)) {
            $this->setServer($_SERVER);
        }

        return $this;
    }