reply = new JsonReply (); $this->init (); $this->startSession (); try { // Checks the client version if (!empty ($_COOKIE['vn_version'])) $clientVersion = (int) $_COOKIE['vn_version']; if (isset ($clientVersion) && $clientVersion < $this->getVersion ()) throw new Lib\UserException (s('Critical version available'), 'newVersion'); // Fetchs the result $method = $this->loadMethod ($_REQUEST['method']); $method->run (); } catch (SessionExpiredException $e) { $this->setError (s('The session has expired'), 'sessionExpired'); } catch (BadLoginException $e) { $this->setError (s('Invalid login'), 'badLogin'); } catch (Lib\UserException $e) { $this->setError ($e->getMessage (), $e->getCode ()); } } function errorHandler ($errno, $message, $file, $line, $context) { switch ($errno) { case E_USER_WARNING: $this->addWarning ($message, $errno); break; case E_WARNING: case E_CORE_WARNING: case E_COMPILE_WARNING: $this->addWarning ('Something has gone wrong', 'internalWarning'); default: return parent::errorHandler ($errno, $message, $file, $line, $context); } return TRUE; } function globalErrorHandler () { $this->setError ('An internal error has occurred', 'internalError'); exit (0); } } ?>