. namespace hoplite\http2; require_once HOPLITE_ROOT . '/http2/middleware.php'; require_once HOPLITE_ROOT . '/http2/request.php'; require_once HOPLITE_ROOT . '/http2/response.php'; class Action extends Middleware { protected $request; public function beforeRequest() {} public function afterRequest(Response $response) {} public function defaultRequest(Request $request) { return $this->next->execute($request); } public function execute(Request $request) { $this->request = $request; $this->beforeRequest(); $action = @$request->context[Router::class]['data']['action']; if (!$action || !method_exists($this, $action)) { return $this->defaultRequest($request); } $response = $this->{$action}($request); $this->afterRequest($response); return $response; } }