Objetos en PHP
Una buena forma de mantener información de sesiones en PHP es mediante objetos. Sin embargo, es muy común utilizar diferentes campos del arreglo $_SESSION. Este forma es muy práctica, pero si la cantidad de información es demasiada puede resultar confuso (cuantas veces he tenido que volver a mirar el código para recordar como nombre pensé que recordaría...). Un objeto es más amigable y hace que el código se pueda mantener con más facilidad.
Mantener un objecto en sesión es trivial, pero hay que tener en cuenta unos detalles.
- Se debe serializar el objecto, sino, al recuperarlo los datos podrían no se correctos.
- Los campos estáticos no se pueden guardar (esto es claro por el paradigma orientado a objetos, pero a veces genera confusión)
- Se debe incluir el archivo que define la clase antes de levantar el objeto.
El ejemplo
Vamos a crear 2 archivos. Uno para definir la clase y otro para llamar a la clase y guardar el objeto. La idea es crear un objeto que quede en sesion, y cada vez que se actualice la pagina, imprima un valor almacenado en el objeto y aumente dicho valor.
Objeto.php
<?php
class Objeto {
var $valor;
function __construct(){
$this->valor = 0;
}
/* Imprimimos y aumentamos el valor */
public function imprimir(){
echo $this->valor;
$this->valor++;
}
}
?>
index.php
<?php
/* Inclusiones del archivo */
include ("Objeto.php");
session_start();
/* Creamos o levantamos el objeto si no está en sesión */
$mi_objeto;
if (!isset($_SESSION['el_objeto']))
$mi_objeto = new Objeto;
else
$mi_objeto = unserialize($_SESSION['el_objeto']);
/* Imprimimos y guardamos el objeto */
$mi_objeto->imprimir();
$_SESSION['el_objeto'] = serialize($mi_objeto);
?>
Como se puede ver en el archivo index.php, el truco está en utilizar las funciones serialize y unserialize para guardar/recuperar los objetos del arreglo $_SESSIONComentarios y sugerencias son bienvenidos!
Saludos!
No hay comentarios:
Publicar un comentario
Los comentarios son bienvenidos!!!