Accueil > > > CLASSE DE GESTION DE "VARIABLES GLOBALES D'ENVIRONNEMENT"
CLASSE DE GESTION DE "VARIABLES GLOBALES D'ENVIRONNEMENT"
Information sur la source
Description
Dans mon site j'avais besoin de variables "globales", qui ne soient pas seulement limitées à ma propre session, mais communes à tous les visiteurs. Un peu comme les super-globales $_SERVER. ou comme des constantes. Mais que je pourrais aussi modifier ! Le principe est donc de lire / écrire dans un fichier sous forme d'un array (nom => valeur). J'ai pas trouvé mieux. Le fichier (nommé *.cache.php) doit exister et doit déjà contenir les valeurs nécessaires (la méthode __set en particulier ne crée pas de nouvelle valeur)
Source
- <?php
- /*
- * Gestion des fichiers contenant les variables d'environnement
- * ces variables sont communes à tout le site et tous les visiteurs
- * elles sont enregistrées dans un fichier php sous forme d'un tableau
- */
- class cache {
-
- private $contenu = array(); // cache
- private $save = false; // enregistrer le fichier ?
- private $name;
- private $file;
-
- /* constructeur */
- function __construct($cache, $save = false) {
- // le fichier est dans un sous-repertoire /cache
- $this->file = "cache/$cache.cache.php";
- if(!file_exists($file))
- die("erreur cache=$cache: inconnu");
-
- include_once($this->file);
- $this->name = '_'.$cache;
- $this->contenu = ${$this->name};
-
- /* enregistrer ou pas à la fermeture? */
- $this->save = $save;
- }
-
- function __destruct(){ /* enregistre le fichier ? */
- if($this->save) $this->cache();
- }
-
- /* méthodes set & get: lire ou écrire une variable */
- function __set($key, $value) {
- if(isset($this->contenu[$key]))
- $this->contenu[$key] = $value;
- else echo "classe 'cache({$this->name})'->$key = $value\n";
- }
-
- function __get($key) {
- if(isset($this->contenu[$key])) return $this->contenu[$key];
- else { echo "GET classe 'cache({$this->name})'->$key\n"; return false; }
- }
-
- function get_array(){
- return $this->contenu;
- }
-
- function force_save($save=true){
- $this->save = $save;
- }
-
- function cache(){ /* enregistre le fichier */
- $fp = fopen($this->file, "w");
-
- $txt = '<?php $'.$this->name.' = ';
- $txt .= var_export($this->contenu, true);
- $txt .= '; ?>';
-
- fwrite($fp, $txt);
- fclose($fp);
- }
-
- }
-
- ?>
<?php
/*
* Gestion des fichiers contenant les variables d'environnement
* ces variables sont communes à tout le site et tous les visiteurs
* elles sont enregistrées dans un fichier php sous forme d'un tableau
*/
class cache {
private $contenu = array(); // cache
private $save = false; // enregistrer le fichier ?
private $name;
private $file;
/* constructeur */
function __construct($cache, $save = false) {
// le fichier est dans un sous-repertoire /cache
$this->file = "cache/$cache.cache.php";
if(!file_exists($file))
die("erreur cache=$cache: inconnu");
include_once($this->file);
$this->name = '_'.$cache;
$this->contenu = ${$this->name};
/* enregistrer ou pas à la fermeture? */
$this->save = $save;
}
function __destruct(){ /* enregistre le fichier ? */
if($this->save) $this->cache();
}
/* méthodes set & get: lire ou écrire une variable */
function __set($key, $value) {
if(isset($this->contenu[$key]))
$this->contenu[$key] = $value;
else echo "classe 'cache({$this->name})'->$key = $value\n";
}
function __get($key) {
if(isset($this->contenu[$key])) return $this->contenu[$key];
else { echo "GET classe 'cache({$this->name})'->$key\n"; return false; }
}
function get_array(){
return $this->contenu;
}
function force_save($save=true){
$this->save = $save;
}
function cache(){ /* enregistre le fichier */
$fp = fopen($this->file, "w");
$txt = '<?php $'.$this->name.' = ';
$txt .= var_export($this->contenu, true);
$txt .= '; ?>';
fwrite($fp, $txt);
fclose($fp);
}
}
?>
Conclusion
L'utilisation est simple, on crée un fichier - par exemple - cache/global.cache.php : <?php $_global = array('toto' => 0); ?>
dans les scripts on utilise pour l'appeler :
// true pour enregistrer le fichier à la fin du script : $cache = new cache('global', true); // lecture de la valeur $variable_globale = $cache->toto; // on incrémente un compteur $cache->toto ++;
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
text to variable [ par Freneticode ]
---> FrenetiCodehello a tous ..voila je suis en train de cree une function qui me permet de liste toute les variables systeme...et les autres!!!voi
balise, cache :( [ par elanspeech ]
Bonjour,J'utilise la balise suivante :<embed src="fichier.wav" width=145 height=25 autostart="false" cache="false" controls="controlpanel">fichi
probleme fichier [ par Clonk ]
Bonjour,j'utilise des fichiers dans mon site et j'ai un problème avec (non, je peux pas faire sans...):lorsque je veux supprimer une ou plusieurs lign
pbm variable environnement [ par dalow17 ]
Voilà, je développe un intranet et j'aimerai récupérer le login de la session win2K pour que l'utilisateur soit directement reconnu et n'effectuer qu'
passage de varaibles php4 [ par michelvernet2 ]
bonjour,pour passer la variable X du fichier A vers le fichier B, il faudra parait il bientot déclarer la variable X dans B par une instruction du typ
Probleme de fichier pour upload [ par ben01n ]
salut je selectionne un fichier avec un champ file (<INPUT TYPE=FILE SIZE=30 NAME='Fichier'>) puis je récupère la variable $Fichier envoyée par
variable globale non définies [ par petit_stagiaire ]
bonjour, je possède un fichier global.php qui contient des variables dont j'ai besoin notamment pour me connecter à ma base de donnée.Dans mon index j
récupéré variable [ par NargiT ]
=======fichier x.php<form action="envoie.php" method="post">Pseudo : <input name="pseudo" type="text" id="pseudo" value="moi" size="12">&l
PB RECUPERATION VARIABLE [ par nougitch ]
Bonjour à tous,J'aimerais faire un upload sur mon site.La fonction en elle-même est correcte, c'est-à-dire que le fichier que je sélectionne est bel e
Les sessions [ par ninou2 ]
Denis HOME -- Débutant----------------------------------------------------------------------j'ai un gros problème avec les sessions. Le fichier de ses
|
Derniers Blogs
COMMENT UTILISER MVVM AVEC WINDOWS FORMSCOMMENT UTILISER MVVM AVEC WINDOWS FORMS par sebmafate
Ceux qui me connaissent depuis longtemps savent à quel point j'aime Windows Forms. Mais depuis l'arrivée de Silverlight et WPF, je boude régulièrement cette API car il n'est pas toujours facile de faire les choses proprement. Je me suis donc lan...
Cliquez pour lire la suite de l'article par sebmafate [SETUP] TU REBOOT OU TU REBOOT PAS?[SETUP] TU REBOOT OU TU REBOOT PAS? par JeremyJeanson
Quand on fournit une application à déployer, il y a souvent une grave question à laquelle personne n'a pensé : Après déploiement, l'OS va-t-il avoir besoin de redémarrer? En fonction des environnements, cette question est plus ou moins importante. Dans un...
Cliquez pour lire la suite de l'article par JeremyJeanson NOUVEAU BLOGNOUVEAU BLOG par Audrey
Vous pouvez désormais me suivre sur mon nouveau blog : http://blogs.msdn.com/b/audrey A bientôt !...(read more) ...
Cliquez pour lire la suite de l'article par Audrey BIENVENUE SUR LE BLOG DE MAKE A SIGN !BIENVENUE SUR LE BLOG DE MAKE A SIGN ! par junarnoalg
Qui est Make a Sign ? http://www.mytic.be/IC2012 "Make a Sign" est une équipe de 3 étudiants en informatique qui ont choisi de vivre une expérience particulière. Plutôt que de faire un stage traditionnel en entreprise, ils ont décidé de part...
Cliquez pour lire la suite de l'article par junarnoalg [SHAREPOINT] ARRêTER L'ACTIVATION D'UNE FEATURE DEPUIS UN EVENT RECEIVER[SHAREPOINT] ARRêTER L'ACTIVATION D'UNE FEATURE DEPUIS UN EVENT RECEIVER par Pierrick CATRO-BROUILLET
Les Features sont la pierre angulaire de pratiquement tous nos développements SharePoint pour en contrôler le déploiement et le retrait. Parfois, on veut pouvoir interdire leur activation si des contraintes ne sont pas satisfaites et on peut y arriver...
Cliquez pour lire la suite de l'article par Pierrick CATRO-BROUILLET
Forum
RE : SSLRE : SSL par TychoBrahe
Cliquez pour lire la suite par TychoBrahe
Logiciels
Share alpha Powered by BitTorrent (2012)SHARE ALPHA POWERED BY BITTORRENT (2012)BitTorrent est un service bien connu des amateurs de réseaux décentralisés et d'échanges de fichi... Cliquez pour télécharger Share alpha Powered by BitTorrent BitTorrent Live (2012)BITTORRENT LIVE (2012)BitTorrent Live est un réseau peer-to-peer nouveau live protocole de streaming actuellement en dé... Cliquez pour télécharger BitTorrent Live Easy-Planning (1.1.0.2)EASY-PLANNING (1.1.0.2)Easy-Planning permet de créer des plannings sous la représentation de diagrammes. Easy-Planning p... Cliquez pour télécharger Easy-Planning DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler
|