Dati serializzati: cosa significa e perché è così importante?

Nota: Questo articolo è destinato alle persone interessate al modo in cui WordPress memorizza tecnicamente i suoi dati. Se ti piace semplicemente usare WP Staging, non è necessario leggere o comprendere l’articolo seguente.

Il core di WordPress e la maggior parte dei suoi plugin memorizzano i dati nel database in un formato particolare, la cosiddetta rappresentazione dei dati serializzati. Questo tipo viene utilizzato per memorizzare o passare valori PHP senza perdere il loro tipo o la loro struttura. Senza diventare troppo tecnici qui, è essenziale sapere che la rappresentazione dei dati serializzati può gestire quasi tutti i tipi di dati come array, stringhe e oggetti. Diamo un’occhiata a come i plugin e i temi WordPress memorizzano tipicamente i valori nel database. Dopo di che, capirai perché non possiamo semplicemente fare una ricerca e sostituzione attraverso il database quando cloniamo WordPress da una posizione all’altra. Diciamo che un tema sta creando un array per memorizzare un colore e un percorso: In puro PHP, appare così:

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

Quando quell’array viene memorizzato nel database, viene convertito nella rappresentazione serializzata e appare così:

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

Il vantaggio è che la rappresentazione dei dati serializzati può essere memorizzata nel database in modo molto più efficace dell’array PHP. Lo svantaggio è che i dati serializzati non possono essere modificati con una semplice ricerca e sostituzione come faresti con un editor di testo. Se cambi semplicemente il colore o il percorso, la rappresentazione dei dati serializzati sarebbe rotta e non potrebbe più essere utilizzata da PHP. Di conseguenza, il plugin non funzionerebbe più o, molto peggio, anche WordPress sarebbe rotto. Il motivo è che i dati serializzati memorizzano anche la lunghezza dei valori nella rappresentazione dei dati serializzati. Se cambi il percorso da domain.com a host.com, devi anche cambiare il valore di s:18 in s:16 perché https://host.com contiene solo 16 caratteri invece di 18. Se lo fai in modo programmatico, i dati serializzati devono essere riconvertiti in un array. Da lì, possono essere sostituiti semplicemente cambiando i valori dell’array. Come noti già, farlo manualmente con centinaia o addirittura migliaia di valori in un database WordPress è un compito impossibile. Ecco perché WP Staging esegue tutta quella deserializzazione e serializzazione automaticamente per te. Durante questo passaggio, sostituisce i valori corrispondenti con i nuovi quando viene creato un clone di WordPress. WP Staging supporta la ricerca e sostituzione di dati serializzati

Rene Hermenau

Autore: Rene Hermenau

Informazioni sull'autore: René Hermenau è il fondatore di WP STAGING. Si occupa di backup WordPress, staging, migrazioni, gestione dei database e flussi di deployment sicuri.