. namespace hoplite\http; require_once HOPLITE_ROOT . '/http/action.php'; require_once HOPLITE_ROOT . '/http/response_code.php'; /*! This abstract class is the base for handling all requests and filling out response objects. */ class RestAction extends Action { /*! Performs the action and fills out the response's data model. */ public function Invoke(Request $request, Response $response) { $valid_methods = array('get', 'post', 'delete', 'put'); $method = strtolower($request->http_method); if (!in_array($method, $valid_methods)) { $response->response_code = ResponseCode::METHOD_NOT_ALLOWED; $this->controller()->Stop(); return; } $invoke = 'Do' . ucwords($method); $this->$invoke($request, $response); } /*! Methods for each of the different HTTP methods. */ public function DoGet(Request $request, Response $response) {} public function DoPost(Request $request, Response $response) {} public function DoDelete(Request $request, Response $response) {} public function DoPut(Request $request, Response $response) {} }