code: public function run()
      {
          try {
              $this->state = self::STATE_BEFORE_REQUEST;
              $this->trigger(self::EVENT_BEFORE_REQUEST);
  
              $this->state = self::STATE_HANDLING_REQUEST;
              $response = $this->handleRequest($this->getRequest());
  
              $this->state = self::STATE_AFTER_REQUEST;
              $this->trigger(self::EVENT_AFTER_REQUEST);
  
              $this->state = self::STATE_SENDING_RESPONSE;
              $response->send();
  
              $this->state = self::STATE_END;
  
              return $response->exitStatus;
          } catch (ExitException $e) {
              $this->end($e->statusCode, isset($response) ? $response : null);
              return $e->statusCode;
          }
      }
docs: Runs the application.
  This is the main entrance of an application.
  @return int the exit status (0 means normal, non-zero values mean abnormal)