/**
  * Handles a Request to convert it to a Response.
  *
  * When $catch is true, the implementation must catch all exceptions
  * and do its best to convert them to a Response instance.
  *
  * @param Request $request A Request instance
  * @param int     $type    The type of the request
  *                         (one of HttpKernelInterface::MASTER_REQUEST or HttpKernelInterface::SUB_REQUEST)
  * @param bool    $catch   Whether to catch exceptions or not
  *
  * @return Response A Response instance
  *
  * @throws \Exception When an Exception occurs during processing
  *
  * @api
  */
 public function handle(Request $request, $type = self::MASTER_REQUEST, $catch = TRUE)
 {
     if (!$request instanceof ArhitectRequest) {
         $request = ArhitectRequest::createFromRequest($request);
     }
     $this->run($request);
 }
 /**
  * @SuppressWarnings(PHPMD.StaticAccess)
  *
  * @param Request $request
  */
 public function run(Request $request = NULL)
 {
     if (!$request) {
         $request = Request::createFromGlobals();
     }
     $this->getServiceManager()->add(get_class($request), $request);
     // Retrieve the middlewares list
     $httpMiddlewares = $this->config->get('middlewares', []);
     ksort($httpMiddlewares);
     $bus = new Pipe($this->getServiceManager());
     $pipe = $bus->pipe($httpMiddlewares);
     $response = $pipe($request);
     $response->send();
 }