1*a1a3b679SAndreas Boehler<?php 2*a1a3b679SAndreas Boehler 3*a1a3b679SAndreas Boehlernamespace Sabre\HTTP; 4*a1a3b679SAndreas Boehler 5*a1a3b679SAndreas Boehler/** 6*a1a3b679SAndreas Boehler * The RequestInterface represents a HTTP request. 7*a1a3b679SAndreas Boehler * 8*a1a3b679SAndreas Boehler * @copyright Copyright (C) 2009-2015 fruux GmbH (https://fruux.com/). 9*a1a3b679SAndreas Boehler * @author Evert Pot (http://evertpot.com/) 10*a1a3b679SAndreas Boehler * @license http://sabre.io/license/ Modified BSD License 11*a1a3b679SAndreas Boehler */ 12*a1a3b679SAndreas Boehlerinterface RequestInterface extends MessageInterface { 13*a1a3b679SAndreas Boehler 14*a1a3b679SAndreas Boehler /** 15*a1a3b679SAndreas Boehler * Returns the current HTTP method 16*a1a3b679SAndreas Boehler * 17*a1a3b679SAndreas Boehler * @return string 18*a1a3b679SAndreas Boehler */ 19*a1a3b679SAndreas Boehler function getMethod(); 20*a1a3b679SAndreas Boehler 21*a1a3b679SAndreas Boehler /** 22*a1a3b679SAndreas Boehler * Sets the HTTP method 23*a1a3b679SAndreas Boehler * 24*a1a3b679SAndreas Boehler * @param string $method 25*a1a3b679SAndreas Boehler * @return void 26*a1a3b679SAndreas Boehler */ 27*a1a3b679SAndreas Boehler function setMethod($method); 28*a1a3b679SAndreas Boehler 29*a1a3b679SAndreas Boehler /** 30*a1a3b679SAndreas Boehler * Returns the request url. 31*a1a3b679SAndreas Boehler * 32*a1a3b679SAndreas Boehler * @return string 33*a1a3b679SAndreas Boehler */ 34*a1a3b679SAndreas Boehler function getUrl(); 35*a1a3b679SAndreas Boehler 36*a1a3b679SAndreas Boehler /** 37*a1a3b679SAndreas Boehler * Sets the request url. 38*a1a3b679SAndreas Boehler * 39*a1a3b679SAndreas Boehler * @param string $url 40*a1a3b679SAndreas Boehler * @return void 41*a1a3b679SAndreas Boehler */ 42*a1a3b679SAndreas Boehler function setUrl($url); 43*a1a3b679SAndreas Boehler 44*a1a3b679SAndreas Boehler /** 45*a1a3b679SAndreas Boehler * Returns the absolute url. 46*a1a3b679SAndreas Boehler * 47*a1a3b679SAndreas Boehler * @return string 48*a1a3b679SAndreas Boehler */ 49*a1a3b679SAndreas Boehler function getAbsoluteUrl(); 50*a1a3b679SAndreas Boehler 51*a1a3b679SAndreas Boehler /** 52*a1a3b679SAndreas Boehler * Sets the absolute url. 53*a1a3b679SAndreas Boehler * 54*a1a3b679SAndreas Boehler * @param string $url 55*a1a3b679SAndreas Boehler * @return void 56*a1a3b679SAndreas Boehler */ 57*a1a3b679SAndreas Boehler function setAbsoluteUrl($url); 58*a1a3b679SAndreas Boehler 59*a1a3b679SAndreas Boehler /** 60*a1a3b679SAndreas Boehler * Returns the current base url. 61*a1a3b679SAndreas Boehler * 62*a1a3b679SAndreas Boehler * @return string 63*a1a3b679SAndreas Boehler */ 64*a1a3b679SAndreas Boehler function getBaseUrl(); 65*a1a3b679SAndreas Boehler 66*a1a3b679SAndreas Boehler /** 67*a1a3b679SAndreas Boehler * Sets a base url. 68*a1a3b679SAndreas Boehler * 69*a1a3b679SAndreas Boehler * This url is used for relative path calculations. 70*a1a3b679SAndreas Boehler * 71*a1a3b679SAndreas Boehler * The base url should default to / 72*a1a3b679SAndreas Boehler * 73*a1a3b679SAndreas Boehler * @param string $url 74*a1a3b679SAndreas Boehler * @return void 75*a1a3b679SAndreas Boehler */ 76*a1a3b679SAndreas Boehler function setBaseUrl($url); 77*a1a3b679SAndreas Boehler 78*a1a3b679SAndreas Boehler /** 79*a1a3b679SAndreas Boehler * Returns the relative path. 80*a1a3b679SAndreas Boehler * 81*a1a3b679SAndreas Boehler * This is being calculated using the base url. This path will not start 82*a1a3b679SAndreas Boehler * with a slash, so it will always return something like 83*a1a3b679SAndreas Boehler * 'example/path.html'. 84*a1a3b679SAndreas Boehler * 85*a1a3b679SAndreas Boehler * If the full path is equal to the base url, this method will return an 86*a1a3b679SAndreas Boehler * empty string. 87*a1a3b679SAndreas Boehler * 88*a1a3b679SAndreas Boehler * This method will also urldecode the path, and if the url was incoded as 89*a1a3b679SAndreas Boehler * ISO-8859-1, it will convert it to UTF-8. 90*a1a3b679SAndreas Boehler * 91*a1a3b679SAndreas Boehler * If the path is outside of the base url, a LogicException will be thrown. 92*a1a3b679SAndreas Boehler * 93*a1a3b679SAndreas Boehler * @return string 94*a1a3b679SAndreas Boehler */ 95*a1a3b679SAndreas Boehler function getPath(); 96*a1a3b679SAndreas Boehler 97*a1a3b679SAndreas Boehler /** 98*a1a3b679SAndreas Boehler * Returns the list of query parameters. 99*a1a3b679SAndreas Boehler * 100*a1a3b679SAndreas Boehler * This is equivalent to PHP's $_GET superglobal. 101*a1a3b679SAndreas Boehler * 102*a1a3b679SAndreas Boehler * @return array 103*a1a3b679SAndreas Boehler */ 104*a1a3b679SAndreas Boehler function getQueryParameters(); 105*a1a3b679SAndreas Boehler 106*a1a3b679SAndreas Boehler /** 107*a1a3b679SAndreas Boehler * Returns the POST data. 108*a1a3b679SAndreas Boehler * 109*a1a3b679SAndreas Boehler * This is equivalent to PHP's $_POST superglobal. 110*a1a3b679SAndreas Boehler * 111*a1a3b679SAndreas Boehler * @return array 112*a1a3b679SAndreas Boehler */ 113*a1a3b679SAndreas Boehler function getPostData(); 114*a1a3b679SAndreas Boehler 115*a1a3b679SAndreas Boehler /** 116*a1a3b679SAndreas Boehler * Sets the post data. 117*a1a3b679SAndreas Boehler * 118*a1a3b679SAndreas Boehler * This is equivalent to PHP's $_POST superglobal. 119*a1a3b679SAndreas Boehler * 120*a1a3b679SAndreas Boehler * This would not have been needed, if POST data was accessible as 121*a1a3b679SAndreas Boehler * php://input, but unfortunately we need to special case it. 122*a1a3b679SAndreas Boehler * 123*a1a3b679SAndreas Boehler * @param array $postData 124*a1a3b679SAndreas Boehler * @return void 125*a1a3b679SAndreas Boehler */ 126*a1a3b679SAndreas Boehler function setPostData(array $postData); 127*a1a3b679SAndreas Boehler 128*a1a3b679SAndreas Boehler /** 129*a1a3b679SAndreas Boehler * Returns an item from the _SERVER array. 130*a1a3b679SAndreas Boehler * 131*a1a3b679SAndreas Boehler * If the value does not exist in the array, null is returned. 132*a1a3b679SAndreas Boehler * 133*a1a3b679SAndreas Boehler * @param string $valueName 134*a1a3b679SAndreas Boehler * @return string|null 135*a1a3b679SAndreas Boehler */ 136*a1a3b679SAndreas Boehler function getRawServerValue($valueName); 137*a1a3b679SAndreas Boehler 138*a1a3b679SAndreas Boehler /** 139*a1a3b679SAndreas Boehler * Sets the _SERVER array. 140*a1a3b679SAndreas Boehler * 141*a1a3b679SAndreas Boehler * @param array $data 142*a1a3b679SAndreas Boehler * @return void 143*a1a3b679SAndreas Boehler */ 144*a1a3b679SAndreas Boehler function setRawServerData(array $data); 145*a1a3b679SAndreas Boehler 146*a1a3b679SAndreas Boehler 147*a1a3b679SAndreas Boehler} 148