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 :

[Système] define ou variables ?


Sujet :

Langage PHP

  1. #1
    Membre actif Avatar de renaudjuif
    Inscrit en
    Avril 2006
    Messages
    325
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 325
    Points : 258
    Points
    258
    Par défaut [Système] define ou variables ?
    Bonjour à tous,

    une petite question générale :
    Dans mes fichiers inclus de constantes pour chaque projet (fichiers souvent appelés header.php ou config.php) J'ai l'habitude de définir toutes mes constantes par des "define".

    Je vois que pas mal de développeurs définissent leurs constantes par des variables du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $conf=array(
    "serveur" => "xxxxx",
    "user" => "xxxxx",
    "password" => "xxxxx",
    "base" => "xxxxx"
    )
    Y a-t-il un intérêt à définir des variables qui me semblent "invariables" ??

    Merci de vos éclaircissements.

  2. #2
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    Non seulement il n'y a pas d'intérêt, mais c'est en plus moins sûr au niveau code, car il est plus facile de redéfinir involontairement une variable.

  3. #3
    Membre éprouvé Avatar de FCYPBA
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 745
    Points : 952
    Points
    952
    Par défaut
    J'ajouterais en plus que les constantes sont globales alors que la version sous forme de tableau est à "globaliser" pour chaque fonction qui en a besoin.

  4. #4
    Membre actif Avatar de renaudjuif
    Inscrit en
    Avril 2006
    Messages
    325
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 325
    Points : 258
    Points
    258
    Par défaut
    Merci pour vos réponses,
    Tous à fait d'accord avec vos remarques.
    Je posais cette question car je vois pas mal de projets plutôt bien ficelés (structure, code,...) mais avec des fichiers de config remplis de variables...

  5. #5
    Membre éprouvé Avatar de FCYPBA
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 745
    Points : 952
    Points
    952
    Par défaut
    Il me semble avoir lu dans différents benchs que les constantes étaient plus couteux qu'une variable.

    Peut-être que cela provient de là.

    Il faudrait que je retrouve l'url pour vérifier.

  6. #6
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    C'est peut-être (sûrement) vrai, je n'ai rien lu dans ce sens, ni le contraire.

    Mais il faut arrêter de rechercher les perfs ultimes au détriment de la facilité de maintenance.

    Franchement, il y a quand même peu de sites nécessitant un tel tuning. Et si c'est le cas, il s'agit sûrement de sites pros. Pour bosser dans l'info (pas l'info sexy mais c'en est quand même ), je peux affirmer que la perte de perfs est bien souvent largement compensée par le gain de temps et de sécurité d'un code solide et lisible.

  7. #7
    Membre actif Avatar de renaudjuif
    Inscrit en
    Avril 2006
    Messages
    325
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 325
    Points : 258
    Points
    258
    Par défaut
    Citation Envoyé par FCYPBA
    Il me semble avoir lu dans différents benchs que les constantes étaient plus couteux qu'une variable.

    Peut-être que cela provient de là.

    Il faudrait que je retrouve l'url pour vérifier.
    Effectivement, un rapide test avec microtime montre que les variables sont initialisées pratiquement 10 fois + vite.
    Mais bon, c'est pas comme dans des boucles ou des processus longs... les constantes ne sont chargées qu'1 fois...
    Je préfère en rester aux "define"

  8. #8
    Membre éprouvé Avatar de FCYPBA
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 745
    Points : 952
    Points
    952
    Par défaut
    Citation Envoyé par renaudjuif
    Effectivement, un rapide test avec microtime montre que les variables sont initialisées pratiquement 10 fois + vite.
    Mais bon, c'est pas comme dans des boucles ou des processus longs... les constantes ne sont chargées qu'1 fois...
    Je préfère en rester aux "define"
    Et qu'en est-il lors de l'utilisation de la constante par rapport à sa version variable ?

  9. #9
    Membre actif Avatar de renaudjuif
    Inscrit en
    Avril 2006
    Messages
    325
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 325
    Points : 258
    Points
    258
    Par défaut
    Citation Envoyé par FCYPBA
    Et qu'en est-il lors de l'utilisation de la constante par rapport à sa version variable ?
    Pour du echo, les define prennent 2 fois + de temps que les variables (0.18 contre 0.08)...

    Voilà pour la partie stats .

  10. #10
    Membre éprouvé Avatar de FCYPBA
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 745
    Points : 952
    Points
    952
    Par défaut
    Je pense que l'on a en effet un bon apercu.

    Donc je dirais qu'il faut utiliser les constantes à bon escient, dans les cas ou l'on en fait pas une trop grande utilisation

  11. #11
    Membre actif Avatar de renaudjuif
    Inscrit en
    Avril 2006
    Messages
    325
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 325
    Points : 258
    Points
    258
    Par défaut
    petite précision : les temps annoncés sont pour des echo dans une boucle de... 100 000
    Donc en ramenant le temps à un simple echo on peut dire que ça reste insignifiant, non ?

  12. #12
    Membre éclairé Avatar de Death83
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 667
    Points : 878
    Points
    878
    Par défaut
    Citation Envoyé par renaudjuif
    petite précision : les temps annoncés sont pour des echo dans une boucle de... 100 000
    Donc en ramenant le temps à un simple echo on peut dire que ça reste insignifiant, non ?
    oui

    à moin d'afficher 1 000 000 de define dans chaque page.

Discussions similaires

  1. [Système] PHP et variables d'environnement
    Par dazz_x dans le forum Langage
    Réponses: 2
    Dernier message: 26/03/2007, 11h01
  2. [Système] fwrite et variable
    Par eliantis dans le forum Langage
    Réponses: 1
    Dernier message: 22/08/2006, 13h15
  3. [Système] Problème avec variables
    Par marie4449 dans le forum Langage
    Réponses: 3
    Dernier message: 22/05/2006, 19h42
  4. [Système] Recupération de variable système
    Par dj-julio dans le forum Langage
    Réponses: 2
    Dernier message: 03/01/2006, 15h45
  5. [Système]Path et variable d'environnement
    Par sysinfo33 dans le forum API standards et tierces
    Réponses: 9
    Dernier message: 26/08/2005, 12h10

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