basename = 'BaseController'; } public static function create() { return new self(); } /** * The __call() method is invoked automatically when a non-existing method or inaccessible method is called. */ public function __call($name, $arguments) { $this->sendOutput('', array('HTTP/1.1 404 Non-Existant method or inaccessible method called')); } public function checkRequestType($request) { $response = 'false'; if (strtoupper($this->requestMethod) == $request) { $response = 'true'; } return $response; } public function unprocessableEntityResponse() { $response['status_code_header'] = 'HTTP/1.1 422 Unprocessable Payload'; $response['body'] = json_encode([ 'error' => 'Invalid input' ]); $this->strErrorDesc = 'Unprocessable Payload'; $this->strErrorHeader = 'HTTP/1.1 422 Unprocessable Payload'; return $response; } public function notFoundResponse() { $response['status_code_header'] = 'HTTP/1.1 404 Entity Not Found'; $response['body'] = null; $this->strErrorDesc = 'Request Entity Not Found'; $this->strErrorHeader = 'HTTP/1.1 422 Entity Not Found'; return $response; } /** * Get URI elements. * * @return array */ protected function getUriSegments() { $requestUri = filter_input(INPUT_SERVER, 'REQUEST_URI', FILTER_SANITIZE_STRING); /*htmlspecialchars()*/ $parsedUri = parse_url($requestUri, PHP_URL_PATH); $uri = explode( '/', $parsedUri ); return $uri; } /** * Get querystring params. * * @return array */ protected function getQueryStringParams() { $query = array(); $queryString = filter_input(INPUT_SERVER, 'QUERY_STRING', FILTER_SANITIZE_STRING); /*htmlspecialchars()*/ parse_str($queryString, $query); return $query; } protected function getServerRequestMethod() { $requestMethod = filter_input(INPUT_SERVER, 'REQUEST_METHOD', FILTER_SANITIZE_STRING); /*htmlspecialchars()*/ return $requestMethod; } /** * Send API output. * * @param mixed $data * @param string $httpHeader */ protected function sendOutput($data, $httpHeaders=array()) { header_remove('Set-Cookie'); if (is_array($httpHeaders) && count($httpHeaders)) { foreach ($httpHeaders as $httpHeader) { header($httpHeader); } } echo $data; exit; } }