Serializar y des-serializar en Laravel.

Al estar desarrollado sobre PHP, Laravel utiliza también las propiedades de serialización y des-serialización de datos.

Laravel  posee una Api que trabaja en segundo plano, cuyo  nombre es Queue, que se vincula estrechamente a la clase Job, para ejecutar tareas de modo asíncrono.

Job por su parte, es una clase tipo Trait, que posee un conjunto de parámetros. Sus instancias son objetos que serán alineados dentro de la cola, en su momento, y extraídos al ser ejecutados.

Es en su uso donde tenemos un ejemplo de la importancia del uso de la serialización:

Los valores que recibe la clase,  son  contenidos dentro de un objeto Php (que no es más  que un array  de su tipo) y necesitan ser pasados a los modelos.

Un elemento que hemos de saber para entender esto es que:   un array de este tipo, fuera de un script Php, no puede ser usado, y  por tanto  no puede ser introducido  directamente en la base de datos, ni leído como otro tipo de file diferente al Php.

Para lograrlo PHP(Laravel), lo lleva a un formato que pueda se común a otros lenguajes, o sea los serializa primero, los añade al  modelo(objeto) y al obtenerlos de vuelta los des-serializa.

Dicho de un modo más  resumido aun: la serialización en si,  consiste en pasar los datos de un objeto  a un formato de string  y guardarlos en la BD.

Solo las propiedades del objeto aceptan ser serializadas.

Si entendemos el sistema de modelos de Laravel, entonces comprenderemos  que al convertir un modelo(objeto) en serializado, ejemplo un determinado Job, estamos preparando para que los valores de sus columnas puedan ser convertidos a  un tipo de string ,específico reconocido por el Framework, guardados en la BD y en el momento de su ejecución, extraídos, leídos y reconvertidos a una sintaxis original.

Esto puede sin dudas, compararse con convertir los datos a JSON, cuando intentamos conectar con Javascript.

En definitiva ambas son alternativas de PHP, para transmitir datos que necesitan ser procesados por otras aplicaciones.

Laravel lo usa en las colas (queues) y los trabajos(Jobs), y su gran ventaja es que Laravel (Php) no solo recuerda el tipo de dato nativo para cada ítem serializado, sino que además luego de des-serializar el método, este desaparece.

La validez de la necesidad de su uso, no solo son las colas, podríamos necesitar utilizarlo para aquellos casos en los que trabajamos con valores cuyo uso es temporal: por ejemplo para procesar   un modelo que contabiliza las conexiones diarias a la bd de un determinado grupo de empleados.

Y listo, esto es todo.

Espero modestamente que este artículo, sirva de ayuda a alguien.

Gracias.

…un sueño es casi todo y más que nada, más que todo al soñarlo, casi nada después……..