/**
  * Request cleanup work.
  * Default implementation will save the user object to session if possible.
  * The method is invoked at the end of {@link run} and {@link transfer}.
  * Derived classes can override this method to provide customized cleanup work.
  * Parent implementation should be invoked.
  */
 protected function endRequest()
 {
     if (!is_null($this->session) && $this->session->isStarted() && !is_null($this->user)) {
         $this->session->set($this->id . ':' . self::SESSION_USER, pradoSerializeObject($this->user));
     }
     foreach ($this->modules as $module) {
         $module->onUnload(new TEventParameter());
     }
 }