IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Constantes, chargement et utilisation


Sujet :

Langage PHP

  1. #1
    Membre très actif
    Avatar de keaton7
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    743
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 743
    Par défaut Constantes, chargement et utilisation
    Bonjour,

    Je me posait une question a propos des constantes en PHP. J'en initialise tout un tas dans une page qui est incluse partout. J'aimerai savoir comment elles sont stockées. C'est a dire est-ce qu'elles sont initialisées a chaque chargement de la page, ou PHP est suffisamment malin pour les garder de cote quelque part au cas ou je les rappelle (je les appelle toujours bien sur, mais je parle de redondance).

    Par exemple :
    page_1.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    define("youpi",TRUE);
     
    // blabla
    page_2.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    define("youpi",TRUE);
     
    // blabla
    // etc ...

    Comment va réagir PHP lors de l'appel de page_2.php, puisque il connait ces constantes, est-ce qu'il va mouliner pour tout charger encore une fois ?

    D'avance merci pour vos idees.

  2. #2
    Membre éclairé
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Février 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Février 2008
    Messages : 71
    Par défaut
    Les constantes sont re-définies à chaque script PHP différent (sinon, tu n'aurais à inclure ton fichier de constantes qu'une seule fois pour toutes les pages ).

    Cependant, cette opération est extrêmement rapide, PHP ne faisant qu'une allocation en mémoire...


    Par contre, une bonne pratique de PHP es de définir le nom de tes constantes en majuscules, pour bien les différencier des autres éléments php (fonctions, variables, etc. ) Je te recommande vivement de le faire, tu pourras détecter immédiatement les constantes quelle que soit la complexité de ton code...

    Cdt,

  3. #3
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Les scripts n'ont pas de liens entre eux : a la fin du script tout est détruit.

    D'ailleurs quel serait l'interet ? : il faudrait que PHP regarde s'il connait deja la constante et si elle a la meme valeur ... du boulot pour rien.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  4. #4
    Membre très actif
    Avatar de keaton7
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    743
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 743
    Par défaut
    Merci, je pense a ça parce que j'ai 2 ou 3 pages d'une centaine de lignes de constantes. Si je multiplie ça par le nombre de visites (potentiel) et la charge que cela représente pour un chargement, j'ai peur que ce soit un peu lourd.

    Je me demandais si le calcul se faisait bien en ces termes ?

    PHP ne faisant qu'une allocation en mémoire
    Je ne savais pas, intéressant.

    Les scripts n'ont pas de liens entre eux
    C'est a dire ? S'il s'agit de la même page rechargée par exemple.

    il faudrait que PHP regarde s'il connait déjà la constante et si elle a la même valeur ... du boulot pour rien.
    C'est pas faux, je n'avais pas vu ça dans ces termes, reste a être sur que la vérification exploite plus de ressources que le chargement pur et simple.

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 448
    Par défaut
    Salut,

    je ne pense pas que ce soit la un facteur de ralentissement. (Bon faut toujours vérifier ce que tu y met, m'enfin si ce sont des booleens ou des chaines de dizaines de caractères c'est largement bon).

    Après si vraiment tu sens des difficulté à générer la page, tourne toi vers les cache d'opcode. C'est impressionnant d'efficacité.
    Php en propose un en standard, il te faudra simplement avoir un hébergement qui te le propose.

    www.php.net/apc
    il existe d'autre systeme de cache d'op code.

    Pour le reste php étant un langage de script il ne garde que très peu de chose en vie en deux éxecutions (querlques connexions persistantes c'est tout).
    Le cache d'op code permet d'en sauvegarder bien plus et d'une bien meilleur manière
    A noter qu'il te permet aussi de sauvegarder tes constantes directement dedans, du moins sur apc.
    Qu'il peut aussi te servir de segment mémoire persistant partagé par tes process php.

    bref, que du bon.

    a plus

Discussions similaires

  1. [PowerShell] Chargement et utilisation d'une DLL
    Par Samuel_ dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 11/07/2014, 10h42
  2. Réponses: 1
    Dernier message: 29/04/2009, 11h43
  3. [JSTL] <c:if> Utilisation de constantes static
    Par ncachet dans le forum Taglibs
    Réponses: 3
    Dernier message: 30/01/2007, 15h32
  4. Utiliser une constante dans une requête
    Par Nabouille dans le forum Access
    Réponses: 4
    Dernier message: 19/04/2006, 14h09
  5. Chargement d'une DLL et utilisation du multithread
    Par Maitre Kanter dans le forum Langage
    Réponses: 6
    Dernier message: 08/09/2004, 00h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo