Exemplo n.º 1
0
 public function getDecodeJson($key, $default = null)
 {
     ErrorHandler::start();
     $params = json_decode($this->getParam($key), $default);
     ErrorHandler::stop();
     return (array) $params;
 }
 /**
  * Retrieves singleton instance
  *
  * @return ErrorHandler
  */
 public static function getInstance($andStart = false)
 {
     if (self::$instance == null) {
         self::$instance = new self();
         if ($andStart) {
             self::$instance->start();
         }
     }
     return self::$instance;
 }
Exemplo n.º 3
0
 /**
  * Use the glob function provided by the system.
  *
  * @param  string  $pattern
  * @param  int     $flags
  * @return array
  * @throws Exception\RuntimeException
  */
 protected static function systemGlob($pattern, $flags)
 {
     if ($flags) {
         $flagMap = array(self::GLOB_MARK => GLOB_MARK, self::GLOB_NOSORT => GLOB_NOSORT, self::GLOB_NOCHECK => GLOB_NOCHECK, self::GLOB_NOESCAPE => GLOB_NOESCAPE, self::GLOB_BRACE => GLOB_BRACE, self::GLOB_ONLYDIR => GLOB_ONLYDIR, self::GLOB_ERR => GLOB_ERR);
         $globFlags = 0;
         foreach ($flagMap as $internalFlag => $globFlag) {
             if ($flags & $internalFlag) {
                 $globFlags |= $globFlag;
             }
         }
     } else {
         $globFlags = 0;
     }
     ErrorHandler::start();
     $res = glob($pattern, $globFlags);
     $err = ErrorHandler::stop();
     if ($res === false) {
         throw new Exception\RuntimeException("glob('{$pattern}', {$globFlags}) failed", 0, $err);
     }
     return $res;
 }
Exemplo n.º 4
0
        ob_clean();
        $errorCase = array(E_WARNING => "Warning!", E_ERROR => "Error!", E_USER_ERROR => "User Error", E_USER_WARNING => "User Warning", E_USER_NOTICE => "User Notice");
        self::primitiveError(500, array_key_exists($errno, $errorCase) ? $errorCase[$errno] : "An unknown error occurred", $errstr . "<br/>Line " . $errline . " in " . $errfile);
    }
    public static function fatalHandler()
    {
        $error = error_get_last();
        if (self::$Enabled && $error !== null) {
            $errorMsg = $error['message'] . ' on line ' . $error['line'] . "<br/>(" . $error['file'] . ")";
            self::primitiveError(500, "Fatal error occurred", $errorMsg);
        }
    }
    private static $Enabled = false;
    public static function start()
    {
        error_reporting(0);
        self::$Enabled = true;
        set_error_handler(__CLASS__ . '::exceptionHandler', E_ALL);
        register_shutdown_function(__CLASS__ . '::fatalHandler');
    }
    public static function stop()
    {
        self::$Enabled = false;
        error_reporting(E_ALL);
        restore_error_handler();
        register_shutdown_function("exit");
    }
}
ErrorHandler::start();
@(include_once "engine/Engine.php") or ErrorHandler::primitiveError(500, "Missing Engine class.");
$engine = new Engine();
Exemplo n.º 5
0
 public static function splitMessage($message, &$headers, &$body, $EOL = Mime\Mime::LINEEND, $strict = false)
 {
     if ($message instanceof Headers) {
         $message = $message->toString();
     }
     // check for valid header at first line
     $firstline = strtok($message, "\n");
     if (!preg_match('%^[^\\s]+[^:]*:%', $firstline)) {
         $headers = array();
         // TODO: we're ignoring \r for now - is this function fast enough and is it safe to assume noone needs \r?
         $body = str_replace(array("\r", "\n"), array('', $EOL), $message);
         return;
     }
     // see @ZF2-372, pops the first line off a message if it doesn't contain a header
     if (!$strict) {
         $parts = explode(':', $firstline, 2);
         if (count($parts) != 2) {
             $message = substr($message, strpos($message, $EOL) + 1);
         }
     }
     // find an empty line between headers and body
     // default is set new line
     if (strpos($message, $EOL . $EOL)) {
         list($headers, $body) = explode($EOL . $EOL, $message, 2);
         // next is the standard new line
     } elseif ($EOL != "\r\n" && strpos($message, "\r\n\r\n")) {
         list($headers, $body) = explode("\r\n\r\n", $message, 2);
         // next is the other "standard" new line
     } elseif ($EOL != "\n" && strpos($message, "\n\n")) {
         list($headers, $body) = explode("\n\n", $message, 2);
         // at last resort find anything that looks like a new line
     } else {
         ErrorHandler::start(E_NOTICE | E_WARNING);
         list($headers, $body) = preg_split("%([\r\n]+)\\1%U", $message, 2);
         ErrorHandler::stop();
     }
     $headers = Headers::fromString($headers, $EOL);
 }