Které properties by měl dump() zobrazovat?

David Grudl
Nette Core | 7419
+
0
-

Objekt může mít víc properties než deklaruje třída, nebo naopak můžeme z něj některé unsetnout nebo je neinicializovat.

Které by měl dump() v Tracy zobrazovat?

class Foo
{
	public ?int $normal = 1;
	public ?int $uninitialized;
	public $unset;
}

$foo = new Foo;
$foo->additional = 10;
unset($foo->unset);

dump($foo);

(Současné chování je takové, že zobrazuje ty properties, které mají nějakou hodnotu, tedy $normal a $additional.)

F.Vesely
Člen | 362
+
0
-

Pokud by to slo, tak bych byl rad, aby mi dump zobrazoval co nejvice informaci. Muze to totiz zrovna byt duvod, proc mi kod spravne nefunguje.

V tvem pripade tedy i $uninitialized s poznamkou, ze je neinicializovana a $unset s poznamkou, ze je unsetnuta.

Pavel Kravčík
Člen | 1016
+
0
-

Pokud to PHP smaže z objektu v dumpu by to dle mého být nemělo IMHO.

David Grudl
Nette Core | 7419
+
+2
-

Mám dojem, že technicky mezi unset a uninitialized je rozdíl jen v tom, že to druhé má typehint. Takže budu zobrazovat asi obojí takto:

obr-zek-2020-12-09-150358
David Grudl
Nette Core | 7419
+
+3
-

Ještě jsem řešil pořadí těch properties:

  • na začátek dávám dynamické, tedy ty co nejsou ve třídě (nemají viditelnost pub/pro/pri)
  • pak properties potomka
  • pak properties rodiče, prarodiče, …
David Grudl
Nette Core | 7419
+
+2
-

Bude fajn, když otestujete Tracy v2.8.0-RC