Sample.php 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221
  1. <?php
  2. namespace Qii\Request;
  3. use Qii\Base\Request;
  4. final class Simple extends Request
  5. {
  6. /**
  7. * __construct
  8. *
  9. * @param string $module
  10. * @param string $controller
  11. * @param string $action
  12. * @param string $method
  13. * @param array $params
  14. */
  15. public function __construct ($module, $controller, $action, $method, $params = null)
  16. {
  17. if ($params && !is_array($params)) {
  18. unset($this);
  19. trigger_error('Expects the params is an array', E_USER_ERROR);
  20. return false;
  21. }
  22. if (is_string($method)) {
  23. $this->method = $method;
  24. } else {
  25. if (isset($_SERVER['REQUEST_METHOD'])) {
  26. $this->method = $_SERVER['REQUEST_METHOD'];
  27. } else {
  28. if (!strncasecmp(PHP_SAPI, 'cli', 3)) {
  29. $this->method = 'CLI';
  30. } else {
  31. $this->method = 'Unknown';
  32. }
  33. }
  34. }
  35. if ($module || $controller || $action) {
  36. if ($module && is_string($module)) {
  37. $this->module = $module;
  38. } else {
  39. $this->module = YAF_G('default_module');
  40. }
  41. if ($controller && is_string($controller)) {
  42. $this->controller = $controller;
  43. } else {
  44. $this->controller = YAF_G('default_controller');
  45. }
  46. if ($action && is_string($action)) {
  47. $this->action = $action;
  48. } else {
  49. $this->controller = YAF_G('default_action');
  50. }
  51. $this->routed = true;
  52. } else {
  53. $argv = $this->getServer('argv');
  54. if (is_array($argv)) {
  55. foreach($argv as $value) {
  56. if (is_string($value)) {
  57. if (strncasecmp($value, 'request_uri=', 12)) {
  58. continue;
  59. }
  60. $query = substr($value, 12);
  61. break;
  62. }
  63. }
  64. }
  65. if (empty($query)) {
  66. $this->uri = '';
  67. } else {
  68. $this->uri = $query;
  69. }
  70. }
  71. if ($params && is_array($params)) {
  72. $this->params = $params;
  73. } else {
  74. $this->params = array();
  75. }
  76. parent::__construct();
  77. }
  78. /**
  79. * getQuery
  80. *
  81. * @param string $name
  82. * @param mixed $default
  83. * @return mixed
  84. */
  85. public function getQuery($name = null, $default = null)
  86. {
  87. if (is_null($name)) {
  88. return $_GET;
  89. } elseif (isset($_GET[$name])) {
  90. return $_GET[$name];
  91. }
  92. return $default;
  93. }
  94. /**
  95. * getRequest
  96. *
  97. * @param string $name
  98. * @param mixed $default
  99. * @return mixed
  100. */
  101. public function getRequest($name = null, $default = null)
  102. {
  103. if (is_null($name)) {
  104. return $_REQUEST;
  105. } elseif (isset($_REQUEST[$name])) {
  106. return $_REQUEST[$name];
  107. }
  108. return $default;
  109. }
  110. /**
  111. * getPost
  112. *
  113. * @param string $name
  114. * @param mixed $default
  115. * @return mixed
  116. */
  117. public function getPost($name = null, $default = null)
  118. {
  119. if (is_null($name)) {
  120. return $_POST;
  121. } elseif (isset($_POST[$name])) {
  122. return $_POST[$name];
  123. }
  124. return $default;
  125. }
  126. /**
  127. * getCookie
  128. *
  129. * @param string $name
  130. * @param mixed $default
  131. * @return mixed
  132. */
  133. public function getCookie($name = null, $default = null)
  134. {
  135. if (is_null($name)) {
  136. return $_COOKIE;
  137. } elseif (isset($_COOKIE[$name])) {
  138. return $_COOKIE[$name];
  139. }
  140. return $default;
  141. }
  142. /**
  143. * getFiles
  144. *
  145. * @param string $name
  146. * @param mixed $default
  147. * @return mixed
  148. */
  149. public function getFiles($name = null, $default = null)
  150. {
  151. if (is_null($name)) {
  152. return $_FILES;
  153. } elseif (isset($_FILES[$name])) {
  154. return $_FILES[$name];
  155. }
  156. return $default;
  157. }
  158. /**
  159. * get [params -> post -> get -> cookie -> server]
  160. *
  161. * @param string $name
  162. * @param mixed $default
  163. * @return mixed
  164. */
  165. public function get($name, $default = null)
  166. {
  167. if (isset($this->params[$name])) {
  168. return $this->params[$name];
  169. } elseif (isset($_POST[$name])) {
  170. return $_POST[$name];
  171. } elseif (isset($_GET[$name])) {
  172. return $_GET[$name];
  173. } elseif (isset($_COOKIE[$name])) {
  174. return $_COOKIE[$name];
  175. } elseif (isset($_SERVER[$name])) {
  176. return $_SERVER[$name];
  177. }
  178. return $default;
  179. }
  180. /**
  181. * isXmlHttpRequest
  182. *
  183. * @param void
  184. * @return boolean
  185. */
  186. public function isXmlHttpRequest()
  187. {
  188. $header = isset($_SERVER['HTTP_X_REQUESTED_WITH']) ? $_SERVER['X-Requested-With'] : '';
  189. if (is_string($header) && strncasecmp('XMLHttpRequest', $header, 14) == 0) {
  190. return true;
  191. }
  192. return false;
  193. }
  194. /**
  195. * __clone
  196. *
  197. * @param void
  198. */
  199. private function __clone()
  200. {
  201. }
  202. }