/** * Returns a string representation of the handler * * @author Art <*****@*****.**> * @return string */ public function __toString() { return parent::__toString() . self::EOL . 'Registered: ' . (self::$registered ? 'Yes' : 'No') . self::EOL . 'Last reported error: ' . (self::$lastReported ? self::$lastReported->__toString() : '<<none>>'); }
/** * Checks if the two errors are equal * * @author Art <*****@*****.**> * * @param Error $e The other error * * @return bool */ public function equals(Error $e) { return $e->__toString() === $this->__toString(); }
/** * The shutdown handler * * @author Art <*****@*****.**> * @since 1.2.1 Should now report fatal errors if no errors had been raised beforehand. * @codeCoverageIgnore */ public function handle() { if (ErrorHandler::isRegistered()) { $e = new Error(error_get_last()); if (Error::shouldBeReported($e->getType())) { $r = ErrorHandler::getLastReportedError(); $h = ErrorHandler::getLastRegisteredHandler(); if (!$e->isEmpty() && $h && ($r ? !$r->isEmpty() && !$r->equals($e) : true)) { $h->handle($e->getType(), Alo::ifnull($e->getMessage(), '<<unknown error>>'), Alo::ifnull($e->getFile(), '<<unknown file>>'), Alo::ifnull($e->getLine(), '<<unknown line>>')); } } } }