From 3aea482c3ce921825662b924611f29e4b5084593 Mon Sep 17 00:00:00 2001 From: Mike Koch Date: Tue, 27 Jun 2017 08:08:40 -0400 Subject: [PATCH] Add support for X-HTTP-Method-Override header --- api/Link.php | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) 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 *