Sauvegarde des instances d'objets en session
Posté : 17 août 2006, 18:23
Bonsoir,
J'ai lu dans un livre dédié à PHP que l'instancification d'un d'objet prenait du temps. Logique me diriez vous
. Bref alors pourquoi ne pas stocker l'instance des objets créés en session ou dans un fichier, lui même stocké sur un serveur.
A partir de là, je me suis lancé il y a tout juste quelques minutes à faire une petite classe afin d'enregistrer les instances en session.
Ca a été écrit vite fait, j'ai pas encore testé si ça fonctionné, ni rien de rien, etc. Vous allez donc vous demander pourquoi je vous parles ?
En fait j'aurais aimé avoir votre avis pour savoir si cette manière de faire était utile et correct : es-ce que en faisant ainsi, on pourra noter un certain gains de temps d'éxécution ? (oui j'ai pas fait de bench non plus :s) Es-ce que vous vous y prennez d'une autre façon pour sauvegarder vos objets ?
Si oui, utilisez vous un fichier texte à la place ou vous stockez à l'intérieur l'instance de vos objets après les avoir sérializés ? Ou bien autre chose ?
Dans le cas contraire et même si dans le cas pas contraire (si c'est possible car j'aimerais pas mourir bête
), es-ce qu'il est nécessaire de sérializer les objets qu'on veut passer en session ? (il me semble que c'est fait automatiquement, mais j'ai un gros doute
car j'ai eu du mal à retrouver une information sur ça).
@+
J'ai lu dans un livre dédié à PHP que l'instancification d'un d'objet prenait du temps. Logique me diriez vous
A partir de là, je me suis lancé il y a tout juste quelques minutes à faire une petite classe afin d'enregistrer les instances en session.
Ca a été écrit vite fait, j'ai pas encore testé si ça fonctionné, ni rien de rien, etc. Vous allez donc vous demander pourquoi je vous parles ?
En fait j'aurais aimé avoir votre avis pour savoir si cette manière de faire était utile et correct : es-ce que en faisant ainsi, on pourra noter un certain gains de temps d'éxécution ? (oui j'ai pas fait de bench non plus :s) Es-ce que vous vous y prennez d'une autre façon pour sauvegarder vos objets ?
Si oui, utilisez vous un fichier texte à la place ou vous stockez à l'intérieur l'instance de vos objets après les avoir sérializés ? Ou bien autre chose ?
Dans le cas contraire et même si dans le cas pas contraire (si c'est possible car j'aimerais pas mourir bête
<?php
class InstanceManager
{
private $instance; // Tableau contenant les instances a sauvegarder en session
/**
* Constructeur
*/
public function __construct()
{
$_SESSION['instance'] = array();
$this->instance =& $_SESSION['instance'];
}
/**
* @param $class Nom de la classe dont on veut sauvegarder
* son instance en session.
* @param $param Parametre du constructeur de la classe passee
* en parametre (A ameliorer pour prendre en charge multi param...).
*/
public function add($class, $param=null)
{
if(!isset($this->instance[$class]))
{
$this->instance[$class] =& new $class($param);
}
}
/**
* @param $class Nom de la classe dont on veut recuperer l\'instance.
* @return Renvoi l\'instance de la classe demandee si elle existe,
* false dans le cas contraire.
*/
public function getInstanceOf($class)
{
$instanceOfClass = $this->instance[$class];
if(isset($instanceOfClass))
{
return $instanceOfClass;
}
else
{
return false;
}
}
}
?>
Merci d'avance @+