LXDebug::dump: Interna von Rose-DB- und DateTime-Objekten nicht mehr ausgeben
authorMoritz Bunkus <m.bunkus@linet-services.de>
Wed, 1 Mar 2017 14:12:02 +0000 (15:12 +0100)
committerMoritz Bunkus <m.bunkus@linet-services.de>
Wed, 1 Mar 2017 14:18:18 +0000 (15:18 +0100)
commit7f5edaa695f8e23af197c4b82b66ca2e1bbfc35e
tree74f7d509ccc0acc128a0e30252c6a09bf22772c0
parenta6ed938f30a84e83a62432aa8ecd10f057efe677
LXDebug::dump: Interna von Rose-DB- und DateTime-Objekten nicht mehr ausgeben

dump arbeitet nun nicht mehr direkt auf dem zu dumpenden Objekt,
sondern auf Kopien, die je nach Typ auf ihre essenziellen
Informationen zusammengeschrumpft werden. Dafür kann ein Objekt eine
Methode »as_debug_info« bereitstellen, die eine solche Essenz
zurückgibt.

Für SL::DB::Object ist eine Implementation beigelegt, die nur die
Spalten mit ihren stringifizierten Werten zurückgibt, nicht aber mehr
die ganzen Interna wie z.B. Meta-Informationen enthält.

Arrays und Hashes (und Objekte, die auf diesen simplen Typen basieren
und keine eigene »as_debug_info« zurückgeben) werden rekursiv geklont.

Alles andere definierte wird stringifiziert.

Dafür wurde die Funktion LXDebug::dump_object entfernt, die etwas
Ähnliches gemacht hat, aber nur für eine einzelne Rose-DB-Instanz.
SL/DB/Object.pm
SL/LXDebug.pm