PHP : include d'un fichier de constantes

Protoplast
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 30
Inscription: 7 Nov 2006

PHP : include d'un fichier de constantes

Message le Mer Oct 31, 2007 23:13

salut,

J'ai installé wamp5 et je constate un phénomène étrange avec les include de fichiers :

Je fais un include de plusieurs fichiers dans mon code:

Code: Tout sélectionner
    include("constants.inc.php");
    include("trace.inc.php");
    include("dal.inc.php");
    include("session.inc.php");
    include("calendar.inc.php");
    include("xajax.inc.php");
    include("uil.inc.php");
    include("error.inc.php");
    include("bll.inc.php");
    include("provider.inc.php");
    include("variables.inc.php");
    include("utils.inc.php");
    include("stats.inc.php");
    include("communication.inc.php");
    include("inscription.inc.php");


Il se trouve que si je renomme physiquement le premier fichier "constants.inc.php" en n'importe quoi d'autre, mon script s'exécute comme si rien n'avait été modifié ! Comme si constants.inc.php avait été mis en cache.

Vous avez déjà vu ça ? Mieux ! Vous avez une solution ?

Je précise que je ne constate ce problème qu'avec le premier fichier

Protoplast
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 30
Inscription: 7 Nov 2006

Message le Jeu Nov 01, 2007 19:04

J'ai trouvé la cause de mon problème.

Il se trouve que le fichier constants.inc.php existait dans le répertoire racine ET dans le répertoire ou se trouve les autres includes. Du coup il prenait le premier qu'il trouvait.

Intéressant et ... résolu ! J'ai finalement supprimé celui se trouvant dans le répertoire racine, puisqu'il n'avait rien à y faire, le bougre :wink:


medium69
WRInaute passionné
WRInaute passionné
 
Messages: 2485
Inscription: 7 Mai 2005

Message le Jeu Nov 01, 2007 20:33

Tu peux aussi utiliser include_once pour qu'il soit insérer qu'une seule fois, même si il est appelé plusieurs fois.

Ou alors require_once si le dit fichier est impérativement nécessaire au fonctionnement de ton site.

supernini
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 26
Inscription: 25 Oct 2005

Message le Ven Nov 02, 2007 13:22

Par contre en terme de performance pure, les include_once sont a déconseiller. Puisqu'il oblige php a consulté une variable contenant les fichiers déja inclus.

L'idéal est vraiment de savoir ou tu en est dans tes includes.

Mertyl
WRInaute discret
WRInaute discret
 
Messages: 59
Inscription: 17 Juin 2007

Message le Ven Nov 02, 2007 13:47

Moi j'ai prit l'habitude de ne mettre que des requiere_once c'est une mauvaise habitude ?

supernini
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 26
Inscription: 25 Oct 2005

Message le Ven Nov 02, 2007 13:54

Mertyl a écrit:Moi j'ai prit l'habitude de ne mettre que des requiere_once c'est une mauvaise habitude ?


oui et non, on parle d'un gain de quelques micro-seconde... si tu as 100 000 pages par mois, c'est pas un soucis dans mon cas c'est environ 1 000 000 par jours, donc la ca rentre en compte, et j'ai retirer tout les _once (include ou require)

Protoplast
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 30
Inscription: 7 Nov 2006

Message le Ven Nov 02, 2007 21:47

Dans tous les cas, faites attention à l'endroit où est localisé l'include en question par rapport au script qui l'appelle.

Dans mon cas :

folder "root" -- "constants.inc.php" est présent par erreur de manip
folder |_"library" -- "constants.inc.php" est également présent et est à sa place
folder |_"library" -- include.inc.php" appelle "constants.inc.php".

Dans mon cas, "include.inc.php" appelle le "constants.inc.php" qui se situe dans le root. cela ne me semblait pas logique jusqu'à ce que je lise la doc :
http://fr.php.net/include/

si ça peut aider un jour qqun
:)

A+


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités