OVH Cloud OVH Cloud

variables 'permanentes' ?

8 réponses
Avatar
Deub
Bonjour,

Je stocke dans une base de données des paramètres que j'utilise pour toutes
les pages de mon site.
Par exemple, il y a le slogan du site qui s'affiche dans la pseudo frame
haute. Evidemment, ces paramètres ne changent pas souvent.
Je pourrais bien sûr les charger avec un SELECT à chaque affichage de page,
ou au moins les charger pour la première page et transmettre les valeurs
avec une session pour les pages suivantes.
Mais c'est quand même dommage de faire un SELECT en base pour aller chercher
des centaines de fois les mêmes valeurs. L'idéal, ça serait de les charger
une fois pour toutes à chaque démarrage du serveur dans des variables qui
seraient disponibles pour tous les scripts.

Est-ce que quelquechose dans ce genre existe en PHP ?

8 réponses

Avatar
kifran
Deub wrote:
Bonjour,

Je stocke dans une base de données des paramètres que j'utilise pour toutes
les pages de mon site.
Par exemple, il y a le slogan du site qui s'affiche dans la pseudo frame
haute. Evidemment, ces paramètres ne changent pas souvent.
Je pourrais bien sûr les charger avec un SELECT à chaque affichage de page,
ou au moins les charger pour la première page et transmettre les valeurs
avec une session pour les pages suivantes.
Mais c'est quand même dommage de faire un SELECT en base pour aller chercher
des centaines de fois les mêmes valeurs. L'idéal, ça serait de les charger
une fois pour toutes à chaque démarrage du serveur dans des variables qui
seraient disponibles pour tous les scripts.

Est-ce que quelquechose dans ce genre existe en PHP ?
stocker le retour du SELECT 1 fois par jour la premiere fois que la

requete se fait, soit dans un fichier, soit avec les fonctions mm,
c pas les possibilités qui manque

Avatar
Laurent
Bonjour,

Je stocke dans une base de données des paramètres que j'utilise pour toutes
les pages de mon site.
Par exemple, il y a le slogan du site qui s'affiche dans la pseudo frame
haute. Evidemment, ces paramètres ne changent pas souvent.
Je pourrais bien sûr les charger avec un SELECT à chaque affichage de page,
ou au moins les charger pour la première page et transmettre les valeurs
avec une session pour les pages suivantes.
Mais c'est quand même dommage de faire un SELECT en base pour aller chercher
des centaines de fois les mêmes valeurs. L'idéal, ça serait de les charger
une fois pour toutes à chaque démarrage du serveur dans des variables qui
seraient disponibles pour tous les scripts.

Est-ce que quelquechose dans ce genre existe en PHP ?


oui, ca s'appelle un include()... c'est exactement ce pourquoi on s'en
sert : paramètres de connexions à la BDD, variables, fichiers header et
footer.inc.php, etc

à mettre dans un répertoire "include" pour s'y retrouver plus facilement
;) et les nommer .inc.php pour qu'on ne puisse pas les télécharger et
les lire.

Avatar
Antoun
Deub wrote:
Bonjour,

Je stocke dans une base de données des paramètres que j'utilise pour toutes
les pages de mon site.
Par exemple, il y a le slogan du site qui s'affiche dans la pseudo frame
haute. Evidemment, ces paramètres ne changent pas souvent.
Je pourrais bien sûr les charger avec un SELECT à chaque affichage de page,
ou au moins les charger pour la première page et transmettre les valeurs
avec une session pour les pages suivantes.
Mais c'est quand même dommage de faire un SELECT en base pour aller chercher
des centaines de fois les mêmes valeurs. L'idéal, ça serait de les charger
une fois pour toutes à chaque démarrage du serveur dans des variables qui
seraient disponibles pour tous les scripts.

Est-ce que quelquechose dans ce genre existe en PHP ?


Tu peux faire un script, appelons-le initialisation.php,
de ce genre-là :

// initialisations
$bdd = mysql_connect... or die('marche pas') ;
$sql = "SELECT NomParam, ValeurParam FROM PARAMETRES " ;
$data = mysql_query($sql, $bdd) or die('marche pas') ;
$fichier = fopen('param.php', 'w') or die('marche pas') ;

// boucle des paramètres
fwrite($fichier, "<?phpn") ;
while (list($param, $val) = mysql_fetch_row($data)) {
$val = addslashes($val) ;
fwrite($fichier, "$$param = '$val' ;n") ;
}
fwrite($fichier, "?>") ;
fclose($fichier) ;


Ce script te rédigera un fichier param.php qui ressemblera à ça :

$slogan = 'Du bo, du bon, Dubonnet !' ;
$couleur_fond = '#0000AA' ;
$power_user = 'Deub' ;
...

ensuite, il suffit que tes pages fassent un require_once('param.php').

alternativement, tu peux utiliser
... même code
fwrite($fichier, "define('$param', '$val') ;n") ;
... même code

et avoir des constantes :
define('SLOGAN', 'Du bo, du bon, Dubonnet !') ;
define('COULEUR_FOND', '#0000AA') ;
define('POWER_USER' = 'Deub' ;
...

Avatar
Marc

Mais c'est quand même dommage de faire un SELECT en base pour aller chercher
des centaines de fois les mêmes valeurs. L'idéal, ça serait de les charger
une fois pour toutes à chaque démarrage du serveur dans des variables qui
seraient disponibles pour tous les scripts.


ne pas oublier la notion de cache qui est implementée dans les bases
de données autant que dans les systèmes de fichiers. Arretons de voir
des problems la ou il n'y en a pas.

Avatar
Jean-Francois Ortolo
Deub wrote:

L'idéal, ça serait de les charger
une fois pour toutes à chaque démarrage du serveur dans des variables qui
seraient disponibles pour tous les scripts.

Est-ce que quelquechose dans ce genre existe en PHP ?


Bon

Et des variables dans un script déclarées sous forme de constantes,
il suffit de faire un include de ce script en début de chacuns de vos
scripts, non ?

Bien à vous.

Jean Francois Ortolo

--
Mon site donne des Statistiques
et des Historiques Graphiques gratuits
sur les Courses de Chevaux du PMU.
http://www.ortolojf-courses.com

Avatar
Deub
Merci pour toutes vos réponses.
Avatar
Frederic Rouchouze
"Laurent" a écrit dans le message de news:
42f40263$0$6886$
à mettre dans un répertoire "include" pour s'y retrouver plus facilement
;) et les nommer .inc.php pour qu'on ne puisse pas les télécharger et les
lire.


Les nommer plutôt ".php.inc", non ?
--
Frédéric Rouchouze
mailto:

Avatar
P'tit Marcel
à mettre dans un répertoire "include" pour s'y retrouver plus facilement
;) et les nommer .inc.php pour qu'on ne puisse pas les télécharger et les
lire.


Les nommer plutôt ".php.inc", non ?


non !

--
P'tit Marcel