Jet\Debug_ErrorHandler_Error

Ať už ErrorHandler zachytí chybu, nebo nezachycenou výjimku, tak to vždy přetransformuje do podoby instance této třídy a následně se s chybou pracuje.

Každý handler očekává informace právě v podobě instance této třídy.

Přehled metod

Metoda Význam
static newError(
int $code,
string $message,
string $file,
int $line
): static
Vytvoří vlastní instanci podle dat o PHP problému
static newException( Throwable $exception ): static Vytvoří vlastní instanci podle výjimky
protected static getPHPErrorText(
int $error_number
): string
Funkce pro vnitřní použití. Číselný kód PHP chyby převádí na textovou interpretaci.
protected getCurrentURL(): string Funkce pro vnitřní použití.

ErrorHandler sám o sobě musí být celkově malý a maximálně nezávislý na zbytku systému. 

Proto má svou vlastní pomocnou funkci pro určení aktuální URL požadavku.
getRequestURL(): string Vrátí URL požadavky při kterém došlo k problému.
getDate(): string Vrátí datum (formát YYYY-MM-DD) kdy došlo k problému.
getTime(): string Vrátí čas (formát HH:MM:SS) kdy došlo k problému.
getCode(): int Vrátí kód chyby. Jedná se o PHP kód chyby, nebo o kód výjimky (pokud výjimka nějaký kód měla).
getTxt(): string Vrátí základní textovou informaci o problému. 
getMessage(): string Vrátí podrobné informace o problému.
getFile(): string Cesta k souboru / skriptu, kde k problému došlo.
getLine(): int Číslo řádku, kde k problému došlo.
getException(): Throwable|null Pokud problém představuje výjimku, tak pomocí této metody je možné získat její instnaci.
getBacktrace(): Debug_ErrorHandler_Error_BacktraceItem[] Vrátí backtrace k problému. Tedy pole obsahující instance Jet\Debug_ErrorHandler_BacktraceItem
isFatal(): bool Indikuje zda se jedná o fatální problém.
isSilenced(): bool Indikuje zda se jedná o nezávažné varování, které bylo "umlčeno"? Viz ErrorHandler
setIsSilenced(
bool $is_silenced
): void
Nastavení příznaku "je umlčeno". Viz předchozí metoda a také ErrorHandler
__toString(): string
toString(): string
Převede problém na jeho textový popis - do textové podoby bez formátování. 
Užitečné zejména pro logování, nebo CLI režim, nebo logování
static setFormatter(
callable $formatter
): void
Třída má metody toString() a __toString(). Chybu je tedy možné snadno převést na text. Toho využívá například handler, který zaznamenává chyby do logu.
Ovšem může se stát, že vám podoba těchto textových hlášení nebude vyhovovat. Jek to vyřešit? Předělávat knihovnu Jet? Určitě ne! Nebo použít dědičnost - což by velice zesložitilo tuto část systému, která už z principu má být co nejjednodužší?  Také ne ...

Můžete si prostě udělat vlastní formátovač a ten v inicializaci ErrorHandleru nastavit. Např. takto:
Debug_ErrorHandler_Error::setFormatter
    function( 
Debug_ErrorHandler_Error $error ) : string {
        
// ... yours formatter code ...
        
return $txt;
    } 
);
Předchozí kapitola
Jet\Debug_ErrorHandler
Další kapitola
Jet\Debug_ErrorHandler_Error_BacktraceItem