/**
  * Destructor
  *
  * stores errors in session
  *
  */
 public function __destruct()
 {
     if (isset($_SESSION)) {
         if (!isset($_SESSION['errors'])) {
             $_SESSION['errors'] = array();
         }
         // remember only not displayed errors
         foreach ($this->errors as $key => $error) {
             /**
              * We don't want to store all errors here as it would
              * explode user session.
              */
             if (count($_SESSION['errors']) >= 10) {
                 $error = new Error(0, __('Too many error messages, some are not displayed.'), __FILE__, __LINE__);
                 $_SESSION['errors'][$error->getHash()] = $error;
                 break;
             } else {
                 if ($error instanceof Error && !$error->isDisplayed()) {
                     $_SESSION['errors'][$key] = $error;
                 }
             }
         }
     }
 }