public function run() { try { $request = $this->requestFactory->createRequest(); $controller = $this->controllerFactory->create($request); $response = $controller->run($request); } catch (AuthorizationException $e) { $response = new Response(['message' => $e->getMessage()], 401); } catch (ApiException $e) { $response = new Response(['message' => $e->getMessage()], $e->getCode() ?: 400); } http_response_code($response->getCode()); header('Content-Type: application/json'); $body = json_encode($response->getData()); header('X-Api-Signature: ' . hash_hmac('sha256', $body, $this->configuration->getPrivateKey())); echo $body; }
function __construct($controller_name, $action, $format, $params) { //vecchio setup, e' stata aggiunta la creazione del controller $this->controller = ControllerFactory::create($controller_name); //hack per supportare i vecchi mapping con "php". //$format = DataFormatManager::getFormatString($format); $this->__check_reserved_action($action); if ($format !== "raw") { $this->__check_protected_action($action, $format); } DataFormatManager::checkFormatSupported($format); $this->action = $action; $this->format = $format; $this->params = $params; $this->format_helper = DataFormatManager::getFormat($format); $this->execute_action = true; $this->action_result = null; }
private static function validate($name) { try { $url = URL::getInstance(); if ($name == null) { if (Session::getInstance()->isStarted()) { $url->setController(DEFAULT_SESSION_CONTROLLER); $url->setAction(DEFAULT_SESSION_ACTION); return DEFAULT_SESSION_CONTROLLER; } else { $url->setController(DEFAULT_REQUEST_CONTROLLER); $url->setAction(DEFAULT_REQUEST_ACTION); return DEFAULT_REQUEST_CONTROLLER; } } $controller = $name . CONTROLLER; $class = new ReflectionClass($controller); if ($class->isAbstract()) { throw new LogicException(); } $classScope = $class->getConstant('SCOPE'); if ($class->implementsInterface('Context')) { if (Scope::isAcceptable($classScope)) { return $name; } if ($classScope == Scope::SESSION) { $url->setController(DEFAULT_REQUEST_CONTROLLER); $url->setAction(DEFAULT_REQUEST_ACTION); return DEFAULT_REQUEST_CONTROLLER; } if ($classScope == Scope::REQUEST) { ControllerFactory::create(DEFAULT_APPLICATION_CONTROLLER)->redirectToError(); } } return DEFAULT_APPLICATION_CONTROLLER; } catch (LogicException $e) { $e->getTraceAsString(); ControllerFactory::create(DEFAULT_APPLICATION_CONTROLLER)->redirectToError(); } }
public static function getController($name, $action = null, $params = null) { $mycontroller = ControllerFactory::create($name, $action, $params); return $mycontroller; }
/** * @Invocable */ protected function comment() { ControllerFactory::create('Comment')->add($this, 'show'); }
/** * Load and execute controller directly. * * @author anza */ public function loader() { $controller = ControllerFactory::create($this->registry); $controller->execute(); }