[BUG] Debug::consoleDump a dumpování objektu
- _Martin_
- Generous Backer | 679
Pokud na různých místech aplikace dumpuji do konzole instanci jednoho objektu, ve všech dumpech bude objekt v tom stavu, v jakém byl při posledním dumpu. Ukázka:
$instance = new SomeClass;
Debug::consoleDump($instance);
$instance->property = 'value';
Debug::consoleDump($instance);
$instance->property = 'anything else';
Debug::consoleDump($instance);
Příklad vypíše třikrát „anything else“. Šlo by to opravit?
- Ondřej Mirtes
- Člen | 1536
Asi je to kvůli tomu, že se to vyvolává (a zobrazuje) až po ukončení
aplikace, tudíž to 3× vidí anything else
.
- Jan Tvrdík
- Nette guru | 2595
Tenhle bug jsem chtěl taky hlásit (celkem dávno), akorát teď nevím, jestli jsem na to zapomněl nebo zjistil, že to není potřeba. Lze řešit přidáním
if (is_object($var)) $var = clone $var; // neřeší deep clone
Editoval Jan Tvrdík (19. 10. 2009 20:01)
- jasir
- Člen | 746
Jan Tvrdík napsal(a):
Tenhle bug jsem chtěl taky hlásit (celkem dávno), akorát teď nevím, jestli jsem na to zapomněl nebo zjistil, že to není potřeba. Lze řešit přidáním
if (is_object($var)) $var = clone $var; // neřeší deep clone
Nebude fungovat na FormContainer (a potomky).
- _Martin_
- Generous Backer | 679
jasir napsal(a):
Nebude fungovat na FormContainer (a potomky).
Právě – proto by to chtělo jiné řešení, třeba vydumpovat si objekt hned do nějaké dočasné proměnné.
- Patrik Votoček
- Člen | 2221
JJ přesně tohle mě teď v metru napadlo že místo toho aby se do dočasné proměné dával celý objekt tak by možná šlo dávat tam rovnou dump.