Bonjour à tous,
Je débute en PHP(comme vous pouvez le deviner

) et j'ai un petit problème avec la persistance.
Après moultes recherches, j'ai bien compris que le PHP gérait assez mal cela. Cependant, je crois qu'il est possible de le faire, surtout apres avoir pris comme modele l'exemple du "singleton".
Mon problème:
J'ai un serveur A qui envoie une requete sur mon serveur B, sur une page dispatcher.php
Ce serveur contient( ou devrait contenir...) un tableau persistant permettant de récuperer des données et renvoyer des données vers un serveur C.
Pourquoi ce tableau? Car A envoie de tres nombreuses requetes à B dans un laps de temps très court.Les données sont inscrites dans un fichier à plat et la recherche systématique dans ce fichier est beaucoup trop longue.
Je me suis basé sur l'algo du singleton...
Code de ma classe:
<?php
class MySmsDispatcher
{
private static $_instance;
private static $smsCodeListing;//clé=code court, valeur=une adresse
private function __construct()
{
self::$smsCodeListing=array();
echo 'construction du singleton<br/><br/>' ;
}
public static function GetInstance()
{
if (!isset(self::$_instance))
{
echo'linstance nexiste pas<br/>';
self::$_instance = new MySmsDispatcher();
}
else echo'linstance existe deja<br/>';
return self::$_instance;
}
public function AddCode($code,$adresse)
{
self::$smsCodeListing[$code]=$adresse;
}
}
?>
Code de ma page appelée par A:
<?php
include_once("smsdispatcher.php");
for($i=0; $i < 10; $i++)
{
$var = MySmsDispatcher::getInstance();
//quand je fais ce test, il me considere bien une et une seule instance, donc jusqu'ici ,c'est bon!!
}
$action=trim($_POST['action']);
if($action== 'addcode')
{
$code=trim($_POST['code']);
$adresse=trim($_POST['adresse']);
//echo"test des variables : $code $adresse";
$var->AddCode($code,$adresse);//ici il m'ajoute mon code ds une nouvelle instance
var_dump($var);
$var->affichecodes();//et ici je pense qu'il va encore chercher le code ds une nouvelle instance
var_dump($var);
// $var[$code]=$adresse;
}
else if($action== 'removecode')
{
$code=trim($_POST['code']);
$var[$code]='';
}
echo'Mise à jour réussie';
?>
Et bien sur, quand j'envoie une requete POST pour ajouter un element a mon array smsCodeListing, il me recree systematiquement une nouvelle instance
Je suis preneur de toute aide,critique, indication, correction,...
Je précise que je code en PHP5 (enfin j'essaye)