diff --git a/api/Link.php b/api/Link.php index 6ae9a884..f2dbba22 100644 --- a/api/Link.php +++ b/api/Link.php @@ -39,7 +39,7 @@ class Link } self::$routes = $routes; - $method = strtolower($_SERVER['REQUEST_METHOD']); + $method = self::getRequestMethod(); $path = '/'; $handler = null; $matched = array(); @@ -108,6 +108,21 @@ class Link } } + private static function getRequestMethod() { + $headers = getallheaders(); + + $uppercaseHeaders = array(); + foreach ($headers as $header => $value) { + $uppercaseHeaders[strtoupper($header)] = $value; + } + + if (isset($uppercaseHeaders['X-HTTP-METHOD-OVERRIDE'])) { + return $uppercaseHeaders['X-HTTP-METHOD-OVERRIDE']; + } + + return $_SERVER['REQUEST_METHOD']; + } + /** * Static function that helps you generate links effortlessly and pass parameters to them, thus enabling to generate dynamic links *