Sample.php 4.0 KB

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