Exemple #1
0
 /**
  * Processes the HTTP request.
  * 
  * @param DevblocksHttpRequest $request
  * @param boolean $is_ajax
  */
 static function processRequest(DevblocksHttpRequest $request, $is_ajax = false)
 {
     $path = $request->path;
     $controller_uri = array_shift($path);
     // [JAS]: Offer the platform a chance to intercept.
     switch ($controller_uri) {
         // [JAS]: Plugin-supplied URIs
         default:
             $controllers = DevblocksPlatform::getExtensions('devblocks.controller', true);
             $router = DevblocksPlatform::getRoutingService();
             /*
              * [JAS]: Try to find our command in the URI lookup first, and if we
              * fail then fall back to raw extension ids.
              */
             if (null == ($controller_id = $router->getRoute($controller_uri)) || null == ($controller = $controllers[$controller_id])) {
                 $controller = $controllers[APP_DEFAULT_CONTROLLER];
             }
             if ($controller instanceof DevblocksHttpRequestHandler) {
                 $controller->handleRequest($request);
                 // [JAS]: If we didn't write a new response, repeat the request
                 if (null == ($response = DevblocksPlatform::getHttpResponse())) {
                     $response = new DevblocksHttpResponse($request->path);
                     DevblocksPlatform::setHttpResponse($response);
                 }
                 // [JAS]: An Ajax request doesn't need the full Http cycle
                 if (!$is_ajax) {
                     $controller->writeResponse($response);
                 }
             } else {
                 header("Status: 404");
                 die;
                 // [TODO] Improve
             }
             break;
     }
     return;
 }
Exemple #2
0
 function __construct($manifest)
 {
     parent::__construct($manifest);
     $router = DevblocksPlatform::getRoutingService();
     $router->addRoute('webapi', 'core.controller.rest');
 }