tiny ‘n’ smart
database layer

Odkazy: dibi | API reference

Oznámení

Omlouváme se, provoz fóra byl ukončen

Tracy (Laděnka) nezobrazuje Debugger Bar

před 4 lety

rossini
Člen | 26
+
0
-

Dobrý den,

ve vlastním projektu využívám Tracy a vše perfektně funguje. Bohužel se mi ale nezobrazuje Debugger Bar. Pouze, pokudu zakomentuji registraci mého auto loaderu spl_autoload_register(„autoloadFunkce“);

Vůbec si nevím rady s tím, proč se Debugger Bar nezobrazí, když Tracy chytá všechny chyby tak, jak má. Nemáte někdo prosím nějaký nápad?

Kód:

require 'tracy-master/src/tracy.php';
use Tracy\Debugger;

Debugger::enable();

....

function autoloadFunkce($trida)
{
    if ((mb_strlen($trida) >= mb_strlen("Controller")) && (mb_strpos($trida, "Controller", mb_strlen($trida) - mb_strlen("Controller"))) !== false)
        require(API_PATH."controllers/" . $trida . ".php");
    else
        require(API_PATH."models/" . $trida . ".php");
}

spl_autoload_register("autoloadFunkce");

...

před 4 lety

Milo
Moderator | 1031
+
0
-

Tracy je current master branch?

Máš na mysli, že se nezobrazí debugger bar celý anebo pouze dibi panel v něm?

před 4 lety

rossini
Člen | 26
+
0
-

Zobrazí se mi pouze bílý podklad (jakoby rám Debuger bar) a v něm prázdno. Jo a omlouvám se, právě jsem zjistil, že jsem toto vlákno chtěl postnout na Nette a ne na Dibi… Jsem lama..

// je to ale starší verze (možná dost starší), hledám novou, ale budu asi potřebovat poradit kde :)

Editoval rossini (18. 10. 2013 10:18)

před 4 lety

Milo
Moderator | 1031
+
0
-

Tracy najdeš na Githubu. Jinak s tou chybou nevím, nějak nechápu co se kde nezobrazí. Obrázek by asi napověděl.

před 4 lety

rossini
Člen | 26
+
0
-

Děkuju za odkaz na Tracy. Obrázek toho Debuger rámu je tady: http://tinypic.com/r/1607mgi/5 Je to horní okraj FireBugu a k němu přilepené „torzo“ debuger baru…

před 4 lety

rossini
Člen | 26
+
0
-

Tak definitívně jsem si ověřil, že Tracy resp. Debug Bar je ovlivňovaný tou mojí stupidní autoload funkcí, resp.
spl_autoload_register(„autoloadFunkce“); Vytvořil jsem úplně čistý file, v něm je jen:

require 'tracy-master2/src/tracy.php';
use Tracy\Debugger;
Debugger::enable();

function autoloadFunkce($trida) {
    if ((mb_strlen($trida) >= mb_strlen("Controller")) && (mb_strpos($trida, "Controller", mb_strlen($trida) - mb_strlen("Controller"))) !== false)
        require(API_PATH."controllers/" . $trida . ".php");
    else
        require(API_PATH."models/" . $trida . ".php");
}

spl_autoload_register("autoloadFunkce");

echo ("Test");

A po spuštění vše proběhne, na stránce je napsáno Test, ale Debug Bar je prázdný… Když spl_autoload_register(„autoloadFunkce“); zakomentuji, tak to projde a zobrazí debuger bar komplet… Netuší nějaký Guru, co resp. proč spl_autoload_register ovlivňuje Debug Bar?

před 4 lety

rossini
Člen | 26
+
0
-

Tak opravdu to bylo tou funkcí. Kdyby někoho zajímalo řešení, tak jsem funkci musel upravit tak, aby „nepředpokládala“, že pokud třída není Controller, je to automaticky Model a hledá definici hned v models/. Něco se tam „bylo“ s Tracy a nezobrazovalo to debugger-bar. Funkci jsem předělal takto:

//Autoloader
function autoloadFunkce($trida)
{
    if ((mb_strlen($trida) >= mb_strlen("Controller")) && (mb_strpos($trida, "Controller", mb_strlen($trida) - mb_strlen("Controller"))) !== false) {
        require(API_PATH."controllers/" . $trida . ".php");
    }
elseif ((mb_strlen($trida) >= mb_strlen("Model")) && (mb_strpos($trida, "Model", mb_strlen($trida) - mb_strlen("Model"))) !== false) {
        require(API_PATH."models/" . $trida . ".php");
    }
}

spl_autoload_register("autoloadFunkce");

Prosím o uzamčení, vyřešeno → a děkuji za ochotu!