static function main() { self::bootstrapStage1(); /* On affiche la page de maintenance avant d'initialiser Wtk et * strass. Ainsi, seuls index.php et ce fichier sont requis pour * afficher la page de maintenance. Pas d'inclusion de Zend, Wtk, * etc. */ if (self::onMaintenance()) { return self::showMaintenance(); } self::bootstrapStage2(); if (!self::isInstalled()) { return Strass_Installer::main(); } try { self::run(); } catch (Exception $e) { self::saveSession(); try { try { $logger = Zend_Registry::get('logger'); } catch (Exception $_) { $logger = new Strass_Logger(); } $logger->critical($e->getMessage(), null, print_r($e, true)); } catch (Exception $_) { } // Affichage complet des exceptions non interceptées par le // controlleur. $msg = ":(\n\n"; $msg .= $e->getMessage() . "\n\n"; $msg .= " à " . $e->getFile() . ":" . $e->getLine() . "\n\n"; $msg .= str_replace('#', '<br/>#', $e->getTraceAsString()) . "\n"; header('HTTP/1.1 500 Internal Server Error'); error_log(strtok($e->getMessage(), "\n")); Orror::kill(strip_tags($msg)); return; } self::saveProfile(); }