Mémoire temporaire - PHP - Programmation
Marsh Posté le 12-09-2004 à 23:02:59
hello
http://fr2.php.net/manual/fr/function.shmop-delete.php
lis le commentaire suivant la description de la fonction
edit : très bien ton blog
Marsh Posté le 12-09-2004 à 23:17:58
Merci bien, ce détail m'avait échappé !
Update : Hum, il ne faut pas s'y méprendre mais je ne suis pas le lalex de www.lalex.com. Dommage je serais tenté de dire, car en effet son blog est très bien, ainsi que ses réflexions persos.
Justement, je suis tombé un jour par hasard sur son site en regardant par curiosité si lalex.com était pris...
Marsh Posté le 12-09-2004 à 21:56:02
J'ai pas mal d'expérience en PHP et je suis en train de concevoir une petite appli de gestion de serveurs de jeux.
Au lieu d'utiliser encore et toujours une BD mysql pour stocker mes données, j'ai voulu innover et gérer des sortes de fichiers de configuration tel que nouveau, enregistrer sous, ouvrir, etc.
Bref, j'ai besoin, tant que le fichier de configuration en cours n'est pas sauvegardé, de stocker des renseignements (des objets sérialisés pour être précis).
J'ai essayé par fichier, ça marche bien, mais ça devient plus délicat quand je souhaite modifier/supprimer une info en particulier, il me faut alors me ballader dans le fichier, changer ce que je veux, etc, c'est assez lourd et je trouvais ça pas terrible.
J'ai cherché un peu dans le manuel de PHP et je suis tombé sur des fonctions de mémoires partagées. En gros, ça permet d'allouer une zone de mémoire et d'y stocker un peu tout ce que l'on veut. Il suffit de rappeler cette zone mémoire à n'importe quel moment pour retrouver ses données.
Tout semblait être au poil donc, sauf que quand j'ai voulu libérer ma mémoire, il s'est avéré que ça ne libérait rien du tout... Même l'exemple fournit dans la doc PHP (page shmop.examples.html dans la doc nexen) semble ne pas marcher au niveau de la libération puisque une lecture après la libération m'affiche tjs le contenu...
Pour finir :
- Je voulais savoir si l'un d'entre vous connait des équivalents à malloc() en PHP
- Ou alors si quelqu'un sait pq la libération (fonction shmop_delete() )semble de pas marcher et aurait une astuce...
- Et je suis ouvert à toute autre proposition qui vous viendrait à l'esprit pour faire du stockage temporaire.
PS : Sous Windows 2K et sup, vous avez besoin de la librairie php_shmop.dll (à décommenter dans php.ini donc) pour utiliser les fonctions de mémoire partagée.
PS2 : Je ne souhaite pas utiliser les sessions qui pourraient très bien jouer ce rôle, je trouve pas ça terrible de stocker des milliers d'infos en session, sans compter leur expiration, etc.
PS3 : Je tourne sous Apache2/PHP5
Message édité par lalex le 12-09-2004 à 21:57:49