body = file_get_contents('php://input'); $this->input = json_decode($this->body); break; } preg_match("/^.{0,}\?(.{0,})$/i", $_SERVER['REQUEST_URI'], $matches); if(sizeof($matches) > 0){ $pieces = explode("&", $matches['1']); foreach ($pieces as $key => $value) { $piece = explode("=", $value); $this->querys[$piece[0]] = $piece[1]; } } $this->route_params = $route_params; if(isset($route_params['id'])){ $this->params = explode('/',$route_params['id']); } } /** * Magic method called when a non-existent or inaccessible method is * called on an object of this class. Used to execute before and after * filter methods on action methods. Action methods need to be named * with an "Action" suffix, e.g. indexAction, showAction etc. * * @param string $name Method name * @param array $args Arguments passed to the method * * @return void */ public function __call($name, $args) { $method = $name . 'Action'; if (method_exists($this, $method)) { if ($this->before() !== false) { call_user_func_array([$this, $method], $args); $this->after(); } } else { throw new \Exception("Method $method not found in controller " . get_class($this)); } } /** * Before filter - called before an action method. * * @return void */ protected function before() { } /** * After filter - called after an action method. * * @return void */ protected function after(){ } public function JsonResp($code,$data,$msg){ header('Access-Control-Allow-Origin:*'); header('Access-Control-Allow-Methods:OPTIONS, GET, POST'); // 允许option,get,post请求 header('Access-Control-Allow-Headers:x-requested-with'); // 允许x-requested-with请求头 header('Access-Control-Allow-Headers:x-ijt'); // 允许x-requested-with请求头 header('Content-Type: application/json'); // 允许x-requested-with请求头 $ret["code"] = $code; $ret["msg"] = $msg; $ret["data"] = $data; $dat = json_encode ( $ret ); $this->_rsp($dat); } protected function _rsp($dat){ if (is_string($dat)){ print $dat; }else{ throw new Exception("internal err",201); } } protected function Crash($code,$msg){ print_r($msg); } }