CustomerRewardsRESTAPI/Controller/API/BaseController.php
2024-05-06 13:19:09 -05:00

72 lines
1.8 KiB
PHP

<?php
/**
* Description of BaseController
*
* @author Mike Howard
*/
class BaseController {
public $name;
public function __construct() {
$this->name = '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'));
}
/**
* 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;
}
}