. namespace hoplite\http; /*! This abstract class is the base for handling all requests and filling out response objects. */ abstract class Action { /*! \var FrontController */ private $controller; /*! Creates a new action with a reference to the FrontController. @param FrontController */ public function __construct($controller) { $this->controller = $controller; } /*! Accesses the FrontController */ public function controller() { return $this->controller; } /*! Performs the action and fills out the response's data model. */ public abstract function Invoke(Request $request, Response $response); }