hotti: Wie kann ich eine, durch Benutzer bearbeitbare, Liste erstellen.

Beitrag lesen

Meine Herren!

in PHP gibt es einen prima Serializer, der kann auch mit Dateien und wie die Datei innendrinnen aussieht, ist doch letztendlich völlig egal […]

Für dieses einfache Beispiel und zum Lernen ist das ein gangbarer Ansatz. Aber ich möchte noch den Warnhinweis hinzufügen, dass das in der Produktiv-Welt möglichst vermieden wird. Man erzeugt damit eine Abhängigkeit zwischen Programmiersprache und Daten, die man nur schwer wieder dekomponieren kann.

Ok, wenn serialize() als Builtin irgendwann mal wegfällt oder als deprecated eingestuft wird. Kannst Du soweit in die Zukunft schauen?

Andererseits ist es freilich erstrebenswert, die Datenhaltung zu abstrahieren, so dass einen etwaige Umstellung der Datenhaltung von "Datei" auf "DB" nur den Austausch einer Klasse (Interface, DAL, Data Abstraction Layer) erfordert. In solchen Fällen werden die Daten auf das andere Medium portiert und gut isses.

Die Abhängigkeit heißt dann eben nicht serialize() sondern DAL und der ist austauschbar, egal, wo der die Daten hinschreibt.

Wenn wir an Skalierbarkeit denken, dann müssen wir berücksichtigen, dass unsere Daten in Zukunft möglicherweise von anderen Quellen angezapft und gefüttert werden, die nicht mit PHPs serialize umgehen können.

In meiner Freizeit befasse sich mich seit vielen Jahren mit dem Thema "Daten serialisieren" und ich sehe da auch einen erheblichen Handlungsbedarf, der nicht etwa darin besteht, die Serializer (c, PHP, Perl, Java, JavaScript) verbessern zu wollen, sondern um sie untereinander (siehe obenstehenden Klammerausdruck) kompatibel zu machen.

Das nenne ich, genau wie Du, Skalierbarkeit: Sequenzen (Dateien), die serverseitig mit PHP oder Perl erzeugt werden (Serialize) mit geringem Bandbreitenbedarf zu übertragen und in modernen Browsern (JavaScript) wiederherzustellen als Datenstruktur, die server- wie clientseitig gleichermaßen werwendet wird. Das Übertragungsmedium und die darunterliegenden Protokolle werden transparent und es ist auch egal, ob Sequenzen via Websocket oder Ajax unterwegs sind oder auch mal im Dateisystem oder direkt im Browser gespeichert werden.

PHPs serialize() ist für solche Dinge ungeeignet aber es gibt Lösungen und auch welche die für einen Produktiveinsatz (oder gerade deswegen) um Größenordnungen zweckmäßiger sind.

Horst