diff --git a/Message/Http/Request.php b/Message/Http/Request.php index f00d8d787..d275da3e6 100644 --- a/Message/Http/Request.php +++ b/Message/Http/Request.php @@ -19,6 +19,7 @@ namespace phpOMS\Message\Http; use phpOMS\Localization\Localization; use phpOMS\Message\RequestAbstract; +use phpOMS\Message\RequestSource; use phpOMS\Router\RouteVerb; use phpOMS\Uri\Http; use phpOMS\Uri\UriFactory; @@ -38,14 +39,6 @@ use phpOMS\Uri\UriInterface; class Request extends RequestAbstract { - /** - * Path. - * - * @var array - * @since 1.0.0 - */ - protected $path = null; - /** * Uploaded files. * @@ -59,14 +52,14 @@ class Request extends RequestAbstract * @var BrowserType * @since 1.0.0 */ - private $browser = null; + private $browser = BrowserType::CHROME; /** * OS type. * * @var OSType * @since 1.0.0 */ - private $os = null; + private $os = OSType::LINUX; /** * Request information. * @@ -88,6 +81,8 @@ class Request extends RequestAbstract { $this->l11n = $l11n; $this->uri = $uri; + $this->source = RequestSource::WEB; + $this->header = new Header(); } /** @@ -183,6 +178,7 @@ class Request extends RequestAbstract */ private function initPseudoRequest($uri) /* : void */ { + // todo: $uri can be string and this will fail!!! $this->setMethod($uri['type']); $this->uri->set($uri['uri']); } @@ -276,7 +272,7 @@ class Request extends RequestAbstract public function isMobile() : bool { // TODO: maybe replace this with smart media queries... checked gets handled in reverse!!! - $useragent = $_SERVER['HTTP_USER_AGENT']; + $useragent = $_SERVER['HTTP_USER_AGENT'] ?? ''; if (preg_match('/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i', $useragent) || preg_match('/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i', $useragent)) { return true; @@ -376,25 +372,12 @@ class Request extends RequestAbstract $this->os = $os; } - /** - * Get request hashes. - * - * @return array Request hashes - * - * @since 1.0.0 - * @author Dennis Eichhorn - */ - public function getHash() : array - { - return $this->hash; - } - /** * {@inheritdoc} */ public function getOrigin() : string { - return $_SERVER['REMOTE_ADDR']; + return $_SERVER['REMOTE_ADDR'] ?? '127.0.0.1'; } /** @@ -441,7 +424,7 @@ class Request extends RequestAbstract */ public function getProtocolVersion() : string { - return $_SERVER['SERVER_PROTOCOL']; + return $_SERVER['SERVER_PROTOCOL'] ?? 'HTTP/1.1'; } /** @@ -492,6 +475,8 @@ class Request extends RequestAbstract return RouteVerb::PUT; case RequestMethod::POST: return RouteVerb::SET; + case RequestMethod::DELETE: + return RouteVerb::DELETE; default: throw new \Exception(); } diff --git a/Message/MessageInterface.php b/Message/MessageInterface.php index 67e90aa70..55cb82c68 100644 --- a/Message/MessageInterface.php +++ b/Message/MessageInterface.php @@ -59,28 +59,6 @@ interface MessageInterface */ public function getBody() : string; - /** - * Set status code. - * - * @param string $status Status code - * - * @return void - * - * @since 1.0.0 - * @author Dennis Eichhorn - */ - public function setStatusCode(string $status) /* : void */; - - /** - * Get status code. - * - * @return string Status code - * - * @since 1.0.0 - * @author Dennis Eichhorn - */ - public function getStatusCode() : string; - /** * Get account id. * diff --git a/Message/RequestAbstract.php b/Message/RequestAbstract.php index 0f51aedcb..fd50637fd 100644 --- a/Message/RequestAbstract.php +++ b/Message/RequestAbstract.php @@ -74,7 +74,7 @@ abstract class RequestAbstract implements MessageInterface * @var array * @since 1.0.0 */ - protected $data = null; + protected $data = []; /** * Request data. @@ -114,15 +114,7 @@ abstract class RequestAbstract implements MessageInterface * @var \phpOMS\Message\RequestSource * @since 1.0.0 */ - private static $source = null; - - /** - * Request status. - * - * @var string - * @since 1.0.0 - */ - protected $status = null; + private $source = null; /** * Request hash. @@ -206,7 +198,7 @@ abstract class RequestAbstract implements MessageInterface */ public function getRequestSource() { - return self::$source; + return $this->source; } /** @@ -218,7 +210,7 @@ abstract class RequestAbstract implements MessageInterface throw new InvalidEnumValue($source); } - self::$source = $source; + $this->source = $source; } /** @@ -361,22 +353,6 @@ abstract class RequestAbstract implements MessageInterface $this->account = $account; } - /** - * {@inheritdoc} - */ - public function setStatusCode(string $status) /* : void */ - { - $this->status = $status; - } - - /** - * {@inheritdoc} - */ - public function getStatusCode() : string - { - return $this->status; - } - /** * Get request header. *