Nuestros investigadores estrellas agotaron sus reservas de café, por su búsqueda diariamente por la respuesta, hasta que Emiliano halló la contestación en GitLab y en este momento la compartimos con nosotros.
Solución:
¿Qué es la serialización?
La serialización codifica objetos en otro formato.
por ejemplo tienes un array en PHP así:
$array = array("a" => 1, "b" => 2, "c" => array("a" => 1, "b" => 2));
Y luego desea almacenarlo en un archivo o enviarlo a otra aplicación.
Hay varias opciones de formato, pero la idea es la misma: El array tiene que ser codificado (o podría decir “traducido”), en texto o bytes, que pueden escribirse en un archivo o enviarse a través de la red.
Por ejemplo, en PHP, si usted:
$data = serialize($array);
obtendrás esto:
a:3:s:1:"a";i:1;s:1:"b";i:2;s:1:"c";a:2:s:1:"a";i:1;s:1:"b";i:2;
Este es el formato de serialización particular de PHP que PHP entiende, y funciona a la inversa, por lo que puede usarlo para deserializar objetos.
Por ejemplo, almacenó un serializado array en un archivo, y lo quiere de vuelta en su código como un array:
$array = unserialize($data);
Pero podría elegir un formato de serialización diferente, por ejemplo, JSON:
$json = json_encode($array);
te dará esto:
"a":1,"b":2,"c":"a":1,"b":2
El resultado no solo es fácil de guardar, leer por el ojo humano o enviar a través de la red, sino que también es comprensible para casi todos los demás lenguajes (JavaScript, Java, C#, C++, …)
Conclusión
La serialización traduce objetos a otro formato, en caso de que desee almacenar o compartir datos.
¿Hay situaciones en las que no puede hacer nada más que serializarlo?
No. Pero la serialización suele facilitar las cosas.
¿Son los formatos JSON y PHP los únicos formatos posibles?
No, no, no y una vez más no. Hay un montón de formatos.
- XML que tiene sucesores como SOAP, WSDL, etc. (que tienen un propósito particular)
- Bytes, Protobuf, etc.
- Yaml
- …
- …
- Sus propios formatos (puede crear su propio formato para la serialización y usarlo, pero eso es algo muy importante y no vale la pena, la mayoría de las veces)
La serialización es el proceso de convertir algún objeto en memoria a otro formato que podría usarse para almacenar en un archivo o enviarse a través de la red. La deserialización es el proceso inverso, lo que significa que la instancia del objeto real se restaura a partir de la representación serializada dada del objeto. Esto es muy útil cuando se comunica entre varios sistemas.
El formato de serialización podría ser interoperable o no interoperable. Los formatos interoperables (como JSON, XML, …) permiten serializar algún objeto usando una plataforma determinada y deserializarlo usando una plataforma diferente. Por ejemplo, con JSON podría usar javascript para serializar el objeto y enviarlo a través de la red a un script PHP que deserializará el objeto y lo usará.
los serialize()
La función PHP utiliza un formato no interoperable. Esto significa que solo se puede usar PHP para serializar y deserializar el objeto.
Podrías usar el json_encode
y json_decode()
funciones para serializar/deserializar objetos PHP utilizando el formato interoperable JSON.
La serialización es el proceso de convertir datos (por ejemplo, variables) en una representación como un stringque se puede escribir y leer fácilmente desde, por ejemplo, un archivo o la base de datos.
¿Casos de uso? Hay muchos, pero generalmente gira en torno a la idea de tomar un complejo, anidado array u objeto y convertirlo en un simple string que se puede guardar y leer más tarde para recuperar la misma estructura. Por ejemplo, siempre que tenga en php:
$blub = array();
$blub['a'] = 1;
$blub['a']['b'] = 4;
$blub['b'] = 27;
$blub['b']['b'] = 46;
En lugar de pasar por cada array miembro individualmente y escribirlo uno podría simplemente:
$dataString = serialize($blub);
Y el serializado array está listo para ser escrito en cualquier lugar como un simple stringde tal forma que al recuperar este string de nuevo y haciendo unserialize() encima obtienes exactamente lo mismo array estructura que tenía antes. Sí, es realmente así de simple.
No se te olvide recomendar este artículo si lograste el éxito.