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 :

[POO] Utilisation de global pour récupérer les objets dans les fonctions


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 141
    Points : 92
    Points
    92
    Par défaut [POO] Utilisation de global pour récupérer les objets dans les fonctions
    Bonjour à tous

    je me pose une question très bête mais qui l'est peut-être pas !

    je vois souvent des codes de ce style
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    //bdd ==> classes qui gère les requêtes sql (par exemple)
    $bdd = new bdd();
     
    class truc {
       function bidule ()
       {
          global $bdd;
          .........
          $bdd->ma_function(...);
       }
    }
     
    $truc = new truc();
    $truc->bidule();
    or ma question est la suivante :
    l'utilisation de global pour chaque fonction est-elle mieux ou moins bien que cette proposition :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    //bdd ==> classes qui gère les requêtes sql (par exemple)
    $bdd = new bdd();
     
    class truc {
       public $bdd;
     
       function __construct ($bdd)
       {
          $this->bdd = $bdd;
       }
     
       function bidule ()
       {
          .........
          $this->bdd->ma_function(...);
       }
    }
     
    $truc = new truc($bdd);
    $truc->bidule();
    c'est tout "con" mais je ne vois pas quelle est la meilleure solution niveau "structure" et niveau "optimisation php"

    Peut-être existe-t-il une meilleure solution?

    Merci d'avance pour cette petite question

  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 : 49
    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
    IL vaut clairement mieux utiliser une référence.
    Déjà parce que tes classes seront indépendantes du code englobant, ce qui les rend plus versatiles et donc plus utiles.
    • Avant de poser une question, n'hésitez pas à chercher dans la FAQ et les forums
    • Merci d'utiliser les balises de code (# dans l'éditeur)
    • N'oubliez pas de vous servir des boutons , et

    S.N.A.F.U

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 141
    Points : 92
    Points
    92
    Par défaut
    Afin d'en savoir un plus sur les performances de l'une ou l'autre j'ai fais quelques tests, ce n'est pas forcément révélateur mais à chaque fois l'utilisation de global est entre 15 à 20% plus rapide.

  4. #4
    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 : 49
    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
    Oui, mais à ce moment là, pourquoi ne pas tout faire en procédural, qui sera aussi plus rapide que la POO ?
    • Avant de poser une question, n'hésitez pas à chercher dans la FAQ et les forums
    • Merci d'utiliser les balises de code (# dans l'éditeur)
    • N'oubliez pas de vous servir des boutons , et

    S.N.A.F.U

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 09/05/2011, 19h34
  2. les classes et les templates dans les plugins
    Par asoka13 dans le forum C++
    Réponses: 22
    Dernier message: 24/01/2008, 17h11
  3. Réponses: 4
    Dernier message: 11/09/2006, 16h55
  4. Les polices dans les tables et les requêts
    Par zooffy dans le forum Access
    Réponses: 3
    Dernier message: 21/06/2006, 11h06

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