pl: Low Level Serialize plattformübergreifend

Beitrag lesen

problematische Seite

Hi Rolf,

Man muss nur die richtigen Ideen haben 😉

Sorry. Da folge ich nicht. Ich verstehe zwar die Idee, die Du beschreibst, aber ich widerspreche vehement dem Gedanken, dass es eine gute Idee ist. Das ist keine Lösung, sondern ein Workaround.

Und diese Idee ist nicht einmal von mir 😉

Was dahintersteckt, ist die Vielgestaltigkeit (Morphologie) von Datenstrukturen. Und was das Beispiel auch belegt: Es sind nicht die Anwendungen, die nach einem universellen Serializer verlangen sondern es sind die Programmierer die sich sowas wünschen. Die Anwendung selbst nämlich, verlangt eine lineare Adressierung, so wird sie den Vornamen stets in $data->{person}{vname} erwarten genauso wie plz und ort -- immer am selben Platz, egal mit welchem Inhalt.

Anderes Beispiel: EAV in ein Array transformieren. Wir haben

[1]
name = Hansel
vname= Ulrich
plz  = 12345

[2]
name = Otto
vname= Ernst
plz  = 55055

und fassen im ersten Schritt die Schlüssel zusammen. So können wir diesen Datentype auch als assoz. Array aufstellen

1.name  = Hansel
1.vname = Ulrich
1.plz   = 12334
2.name  = Otto
2.vname = Ernst
2.plz   = 55055

und das Array schließlich ist einfach alles nacheinander aufgelistest

1 name Hansel 1 vname Ulrich 1 plz 12334 2 name Otto 2 vname Ernst 2 plz 55055

Beachte: Eine wichtige Information, nämlich die Zuordnung (Assoziation), steckt in der Reihenfolge! Entity ist immer auf dem Index der modulo 3 = 0 ergibt und Attribute, Value lassen sich auf den diesem Sinn entsprechenden anderen Plätzen wiederfinden. So kann man die Daten in der ursprünglichen Struktur wiederherstellen.

MfG 😉

PS: Danke Niklaus Wirth!