Tracy – samostatné použití – modifikace?

Kcko
Člen | 325
+
0
-

Používám Tracy mimo Nette v projektu plném notice chyb (není možné to opravit v dohledné době).

Mám tam 2 menší problémy a chtěl jsem se zeptat jak je vyřešit.

  1. Při zavolání nesmyslného dotazu se mi správně vygeneruje soubor exception…html, do info.log se mi zapíše [2016–12–05 17–58–25] DibiDriverException: Table ‚49_sf.xyz‘ doesn't exist, ale web mi nespadne do červené smrti (nebo se tomu říká blue screen?), musím si vygenerovat error přes trigger_error, viz níže
<?php
dibi::query('SELECT bullshit FROM xyz');
?>

trigger

<?php
    catch (Exception $e)
    {

        //echo $e;
        if ($e->getCode() == "404")
        {
            Page::getInstance()->load404();
        }
        else
        {

            Tracy\Debugger::log($e);
            trigger_error($e, E_USER_ERROR);
        }

    }
?>

Je tohle chování v pořádku? Proč to nespadne rovnou? Navíc, když si vyvolám trigger_error tak mi pak ukazuje chybu v tam kde jsem ho vyvolal a ne ve skutečném umístění, takže hláška že neexistuje tabulka v souboru core.php a ne v souboru homepage.php mi je pak k ničemu, dělám to vůbec dobře?

  1. Jak jsem psal, web je plný notice a pokud si krom logování nastavím i zasílání notifikací na mail, tak se mi pošle první notice z error.log a nikoliv ta hrubší chyba (fatal …), dá se to nastavit? (Prostě chci, aby se mi zasílaly chyby, na kterých to skutečně padá, nikoliv aby to spadlo na něčem fatálním a mě na mail přijde 1 řádek z error logu , většinou noticka).

Editoval Kcko (5. 12. 2016 18:30)

Kcko
Člen | 325
+
0
-
  1. vyřesena nastavením error reportingu po nastavení tracy, tj.
<?php
Tracy\Debugger::enable(...)
error_reporting(E_ALL^E_NOTICE);
?>
midlan
Člen | 2
+
+2
-

ad 1. podle mě je to nad slunce jasné, jak tracy může zpracovat vyjímku kterou odchytíš catchem? Na konec svého catch bloku dej

throw $e;

Nevím jestli ti pak tracy ukáže přesně řádek s chybným dibi::query, v nette jsem začátečník.

Kcko
Člen | 325
+
0
-

midlan napsal(a):

ad 1. podle mě je to nad slunce jasné, jak tracy může zpracovat vyjímku kterou odchytíš catchem? Na konec svého catch bloku dej

throw $e;

Nevím jestli ti pak tracy ukáže přesně řádek s chybným dibi::query, v nette jsem začátečník.

Ukáže, to mě vůbec nenapadlo :-) Díky!