Je voudrais créer quelque chose comme une application de chat très basique. Je ne veux pas utiliser une base de données, car cela causerait une lourde charge sur une base de données déjà surchargée. Je ne veux pas non plus utiliser un fichier plat, parce que j'ai l'impression que ça va devenir un gâchis ou qu'il y aura beaucoup de lecture/écriture ... Donc, je me demande s'il y a un moyen avoir une variable accessible dans n'importe quel fichier et à n'importe quel moment.Y a-t-il une portée variable accessible n'importe où en PHP?
Répondre
Vous ne pouvez pas partager des valeurs de variables entre des demandes distinctes - pensez à chaque demande comme si le programme entier commençait et finissait à chaque fois, même si plusieurs demandes se produisaient à la fois.
Vous pouvez envisager de stocker des données dans une couche de cache (par exemple, memcached), mais il semble que vous ayez besoin de mettre en cache votre base de données si celle-ci est sous forte charge. Je vous recommande de mettre en cache votre base de données (à nouveau memcached ou le stockage basé sur le fichier; serialize()
données d'abord) et puis lorsque ce problème est résolu stocker les données de conversation dans la base de données (qui est à son tour en cache). Vous devez le stocker de manière persistante quelque part.
Merci! Je suppose que je vais le faire. – kevin
Eh bien, si vous ne voulez pas un fichier, il vous reste de la mémoire partagée.
Vous pouvez essayer PHP shared memory functions, ou utiliser une extension comme memcache ou APC.
Il n'y a pas une telle chose. Essayez de créer un fichier de base qui enregistre la version serialized/json'd de la variable que vous souhaitez, utilisez php's flock
pour gérer l'accès à ce fichier, effectuez un cycle du fichier toutes les heures/jour. Comme ce n'est pas une grosse application de trafic simple, je pense que ça ira.
Oui, mais pas pour une application de chat très basique. un fichier plat semble le mieux adapté à une telle définition –