Example #1
0
 /**
  * @param Request $request
  * @throws DataNotSet
  */
 public function dispatch(Request $request = null)
 {
     if ($this->isFirstDispatch) {
         $this->isFirstDispatch = false;
         $this->trigger('dispatch:first');
     }
     // Trigger initialize
     $this->trigger('dispatch:initialize');
     // Check locales
     $this->checkLocale();
     if (!isset($this->router)) {
         throw new DataNotSet("Application needs a router.");
     }
     if (!isset($request)) {
         $request = Request::fromInput();
     }
     // Set session from the session handler
     $session = new Session($this->getSessionHandler());
     $session->connect();
     // Set session in request
     $request->setSession($session);
     // Trigger before
     $this->trigger('dispatch:before', $request);
     // Run router
     $this->router->run($request);
     // Trigger dispatch
     $this->trigger('dispatch:after', $request);
     // Disconnect the session
     $session->disconnect();
     // End
     $this->trigger('dispatch:terminate');
 }