Autor Tema: [TUTORIAL] Serializando un objeto.  (Leído 4323 veces)

Desconectado Focux

  • PHPero Master
  • ******
  • Mensajes: 1.010
  • Karma: 22
    • Ver Perfil
[TUTORIAL] Serializando un objeto.
« en: 19 de Febrero de 2011, 22:43:48 pm »
Hace mucho que no tenía tiempo para hacer tutoriales, pero aquí estoy de nuevo. Hoy les voy a hablar sobre la serialización de objetos, para eso lo voy a explicar utilizando MySQLi, lo que hace serializar es crear representaciones de textos de algún objeto o array para luego poder invertir su proceso y volver utilizarlo.

Lo primero que haremos es, inicializar el objeto de nuestra clase, en mi caso usare MySQLi, cabe resaltar que si vamos a serializar una conexión, debemos crear una conexión persistente, para hacerla en esta libreria debemos poner una p que anteceda al nombre del host.

Citar
<?PHP
$conexionBD = new mysqli('phost', 'user', 'pass', 'db');
$guardarConexion = serialize($conexionBD);
$guardarConexion = urlencode($guardarConexion);
echo '<a href="recibirSerializacion.php?datos='.$guardarConexion.'">';
?>

En este caso, yo envie la serializacion por una url pero podemos hacerla de cualquier manera siempre y cuando podamos leerla para unserializarla. Ahora vamos a hacer lo siguiente para unserializarla:
Citar
<?PHP
$unSerializar = stripslashes($_GET['datos']);
$unSerializar = urldecode($unSerializar);
$unSerializar = unserialize($unSerializar);
$unSerializar->query("ALGO");
?>

Ya podemos trabajar con nuestro objeto, pero por si acaso lo hacemos con un objeto de una clase propia debemos incluir el archivo de nuestra clase. Muchas veces si es algo que vamos a estar utilizando mucho lo idóneo sería crear una session y guardarlo ahi o hacerlo mediante un archivo, en este caso lo hicimos por url, tambien recuerden que podemos hacerlo con un array.

Espero que le haya gustado este tutorial y bueno lo importante es que aprendan, porque para eso estamos aquí. :-[

Mixtiqueros.net

<?PHP
define
(_miNombre'Focux');
if(
_miNombre == 'Focux'): printf('%s es un programador avanzado'_miNombre); else: printf('Tu no eres %s'_miNombre); endif;
?>

Comunidad PHPeros

[TUTORIAL] Serializando un objeto.
« en: 19 de Febrero de 2011, 22:43:48 pm »

Desconectado CarlosRdrz

  • Moderador Global
  • PHPero Master
  • *****
  • Mensajes: 2.505
  • Karma: 131
  • Sexo: Masculino
  • A.k.a. TLX
    • Ver Perfil
Re:[TUTORIAL] Serializando un objeto.
« Respuesta #1 en: 20 de Febrero de 2011, 01:24:17 am »
Curioso. No conocía el método jeje

Buen tutorial :)

Saludos
La dedicación de mi respuesta sera directamente proporcional a la dedicación de tu pregunta.
Hacer códigos que entiendan las máquinas es fácil, lo difícil y realmente útil es hacer códigos que entiendan las personas.
http://twitter.com/CarlosRdrz
http://www.carlosrdrz.es

Desconectado Warlox

  • Moderadores PHP
  • PHPero Master
  • ****
  • Mensajes: 1.278
  • Karma: 77
  • Sexo: Masculino
  • A veces hay que aprender a correr antes de caminar
    • Ver Perfil
    • Página personal
Re:[TUTORIAL] Serializando un objeto.
« Respuesta #2 en: 20 de Febrero de 2011, 03:39:16 am »
Perdona mi ignorancia; pero no lo termino de entender :(
- Moderador de PHP


Desconectado Physlet

  • PHPero Experto
  • *****
  • Mensajes: 822
  • Karma: 41
  • Sexo: Masculino
  • Todo es posible con esfuerzo, dedicación e interés
    • Ver Perfil
    • PanamaDev
Re:[TUTORIAL] Serializando un objeto.
« Respuesta #3 en: 20 de Febrero de 2011, 04:06:07 am »
Interesante, desconocía esto de serializar. Gracias por el aporte.

Desconectado -Pituko-

  • PHPero Experto
  • *****
  • Mensajes: 954
  • Karma: 20
  • Sexo: Masculino
  • ¡Hala Madrid!
    • Ver Perfil
Re:[TUTORIAL] Serializando un objeto.
« Respuesta #4 en: 20 de Febrero de 2011, 15:21:40 pm »
Digo lo mismo que Physlet...

Desconectado Focux

  • PHPero Master
  • ******
  • Mensajes: 1.010
  • Karma: 22
    • Ver Perfil
Re:[TUTORIAL] Serializando un objeto.
« Respuesta #5 en: 23 de Febrero de 2011, 22:11:35 pm »
Gracias por sus opiniones(:
Perdona mi ignorancia; pero no lo termino de entender :(
En cuanto me baje el xampp, que en eso estoy, te explico mejor, porque ahora mismo no tengo ningun host y con eso te podria explicar mejor.
Mixtiqueros.net

<?PHP
define
(_miNombre'Focux');
if(
_miNombre == 'Focux'): printf('%s es un programador avanzado'_miNombre); else: printf('Tu no eres %s'_miNombre); endif;
?>

Desconectado Focux

  • PHPero Master
  • ******
  • Mensajes: 1.010
  • Karma: 22
    • Ver Perfil
Re:[TUTORIAL] Serializando un objeto.
« Respuesta #6 en: 23 de Febrero de 2011, 22:57:36 pm »
ok, ya lo baje. Supongamos que queremos serializar un array, aunque si queremos serializar un array recomiendo mejor http_build_query, pero para que entiendas te explicare con esto, supongamos que tenemos este codigo:
Citar
<?PHP
$conexionBD = array("Hola", ";o", "shit", "eoeo");
$guardarConexion = serialize($conexionBD);
$guardarConexion = urlencode($guardarConexion);
echo '<a href="recibirSerializacion.php?datos='.$guardarConexion.'">xd</a>';
?>

El codigo anterior imprimira el siguiente link:
Citar
con urlencode
recibirSerializacion.php?datos=a%3A4%3A%7Bi%3A0%3Bs%3A4%3A%22Hola%22%3Bi%3A1%3Bs%3A2%3A%22%3Bo%22%3Bi%3A2%3Bs%3A4%3A%22shit%22%3Bi%3A3%3Bs%3A4%3A%22eoeo%22%3B%7D

sin urlencode
recibirSerializacion.php?datos=a:4:{i:0;s:4:"Hola";i:1;s:2:";o";i:2;s:4:"shit";i:3;s:4:"eoeo";} a:4(i:o;s:4:"Hola";i:1;

El codigo de arriba sería como un array comprimido, luego cuando lo queramos usar lo unico que tenemos que hacer es unserializarlo y en caso de que hallamos aplicado urlencode aplicarle la inversa que es urldecode, luego de esto tendremos nuestro array igual como lo dejamos en la pagina anterior.
Mixtiqueros.net

<?PHP
define
(_miNombre'Focux');
if(
_miNombre == 'Focux'): printf('%s es un programador avanzado'_miNombre); else: printf('Tu no eres %s'_miNombre); endif;
?>

Desconectado Physlet

  • PHPero Experto
  • *****
  • Mensajes: 822
  • Karma: 41
  • Sexo: Masculino
  • Todo es posible con esfuerzo, dedicación e interés
    • Ver Perfil
    • PanamaDev
Re:[TUTORIAL] Serializando un objeto.
« Respuesta #7 en: 12 de Marzo de 2011, 08:14:49 am »
Muchísimas gracias Focux, si no fuera por este post no hubiera conocido esta excelente técnica y me hubiera roto mucho la cabeza buscando una solución para una problemática de un proyecto que tengo. Lo he usado para pasar un arreglo vía post, en serio gracias :D

Desconectado Focux

  • PHPero Master
  • ******
  • Mensajes: 1.010
  • Karma: 22
    • Ver Perfil
Re:[TUTORIAL] Serializando un objeto.
« Respuesta #8 en: 12 de Marzo de 2011, 15:22:05 pm »
De nada, para eso estamos, si supieras de todos los que me ha ayudado a resolver está función.
Mixtiqueros.net

<?PHP
define
(_miNombre'Focux');
if(
_miNombre == 'Focux'): printf('%s es un programador avanzado'_miNombre); else: printf('Tu no eres %s'_miNombre); endif;
?>

Desconectado JuLiAnChz

  • PHPerit@
  • *
  • Mensajes: 6
  • Karma: 0
  • Nuev@ PHPer@
    • Ver Perfil
Re:[TUTORIAL] Serializando un objeto.
« Respuesta #9 en: 30 de Agosto de 2013, 15:42:59 pm »
Hola buen dia,

Disculpen... pero si no pregunto no aprendo, esto de serializar me serviria para que exactamente osea en que me ayudaria y por que?...

Muchas Gracias!

Desconectado SoyJoaquin.

  • PHPero Master
  • ******
  • Mensajes: 2.737
  • Karma: 131
  • Sexo: Masculino
  • ส้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้ส้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้ Problem?
    • Ver Perfil
    • IsoMap
Re:[TUTORIAL] Serializando un objeto.
« Respuesta #10 en: 30 de Agosto de 2013, 16:25:59 pm »
Hola buen dia,

Disculpen... pero si no pregunto no aprendo, esto de serializar me serviria para que exactamente osea en que me ayudaria y por que?...

Muchas Gracias!
En el lenguaje mas coloquial: Es convertir un objeto en una cadena legible para después poder ser decodificada usando unserialize();

Un ejemplo básico: Guardar un array en una base de datos, aplicamos serialize();, cuando lo extraemos, aplicamos unserialize(); y este nos devolverá el objeto (El array) para poderlo utilizar en nuestro código.
Saludos.
Twitter: @JoakoM010



Desconectado JuLiAnChz

  • PHPerit@
  • *
  • Mensajes: 6
  • Karma: 0
  • Nuev@ PHPer@
    • Ver Perfil
Re:[TUTORIAL] Serializando un objeto.
« Respuesta #11 en: 03 de Septiembre de 2013, 17:31:36 pm »
En el lenguaje mas coloquial: Es convertir un objeto en una cadena legible para después poder ser decodificada usando unserialize();

Un ejemplo básico: Guardar un array en una base de datos, aplicamos serialize();, cuando lo extraemos, aplicamos unserialize(); y este nos devolverá el objeto (El array) para poderlo utilizar en nuestro código.
Saludos.

Muchas gracias!, es decir que con esto puedo guardar una array codificada en la base de datos y luego exportarla y volverla otra vez array (decode) :D

Desconectado Void

  • PHPerit@
  • *
  • Mensajes: 7
  • Karma: 0
  • Nuev@ PHPer@
    • Ver Perfil
Re:[TUTORIAL] Serializando un objeto.
« Respuesta #12 en: 11 de Octubre de 2013, 10:23:51 am »
Que método interesante.
No sabía que algo así existía, muchas gracias por compartirlo.