Serialisierte Daten – Was bedeutet das und warum ist es so wichtig?

Hinweis: Dieser Artikel richtet sich an Personen, die daran interessiert sind, wie WordPress seine Daten technisch speichert. Wenn Sie WP Staging einfach nur verwenden möchten, müssen Sie den folgenden Artikel nicht lesen oder verstehen.

Der WordPress-Kern und die meisten seiner Plugins speichern Daten in der Datenbank in einem bestimmten Format, der sogenannten serialisierten Datendarstellung. Dieser Typ wird zum Speichern oder Übergeben von PHP-Werten verwendet, ohne dass deren Typ oder Struktur verloren geht. Ohne hier zu technisch zu werden, ist es wichtig zu wissen, dass die serialisierte Datendarstellung nahezu alle Datentypen wie Arrays, Strings und Objekte verarbeiten kann. Werfen wir einen Blick darauf, wie WordPress-Plugins und -Themes typischerweise Werte in der Datenbank speichern. Danach verstehen Sie, warum wir einfach kein Suchen und Ersetzen durch die Datenbank durchführen können, wenn wir WordPress von einem Ort zum anderen klonen. Nehmen wir an, ein Theme erstellt ein Array zum Speichern einer Farbe und eines Pfades: In reinem PHP sieht das so aus:

$settings = array(
'color' => 'green',
'path' => 'https://domain.com'
);

Wenn dieses Array in der Datenbank gespeichert wird, wird es in die serialisierte Darstellung umgewandelt und sieht so aus:

a:2:{s:5:"color";s:5:"green";s:4:"path";s:18:"https://domain.com";}

Der Vorteil ist, dass die serialisierte Datendarstellung viel effektiver in der Datenbank gespeichert werden kann als das PHP-Array. Der Nachteil ist, dass die serialisierten Daten nicht durch ein einfaches Suchen & Ersetzen geändert werden können, wie Sie es in einem Texteditor tun würden. Wenn Sie einfach die Farbe oder den Pfad ändern, wäre die serialisierte Datendarstellung beschädigt und könnte von PHP nicht mehr verwendet werden. Infolgedessen würde das Plugin nicht mehr funktionieren oder, was noch viel schlimmer ist, WordPress wäre ebenfalls kaputt. Der Grund dafür ist, dass die serialisierten Daten auch die Länge der Werte in der serialisierten Datendarstellung speichern. Wenn Sie den Pfad von domain.com zu host.com ändern, müssen Sie auch den Wert von s:18 auf s:16 ändern, da https://host.com nur 16 Zeichen statt 18 enthält. Wenn Sie das programmatisch tun, müssen die serialisierten Daten zurück in ein Array umgewandelt werden. Von dort aus können sie ersetzt werden, indem einfach die Array-Werte geändert werden. Wie Sie bereits bemerken, ist es eine unmögliche Aufgabe, dies manuell mit Hunderten oder sogar Tausenden von Werten in einer WordPress-Datenbank zu tun. Deshalb erledigt WP Staging diese ganze Deserialisierung und Serialisierung automatisch für Sie. Während dieses Schritts ersetzt es die entsprechenden Werte durch die neuen, wenn ein WordPress-Klon erstellt wird. WP Staging unterstützt Suchen und Ersetzen von serialisierten Daten

Rene Hermenau

Autor: Rene Hermenau

Über den Autor: René Hermenau ist Gründer von WP STAGING. Er arbeitet an WordPress-Backups, Staging, Migrationen, Datenbankverarbeitung und sicheren Deployment-Workflows.