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] Portee des variables GLOBALS


Sujet :

Langage PHP

  1. #1
    Membre éclairé
    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
    Points : 689
    Points
    689
    Par défaut [POO] Portee des variables GLOBALS
    Bonjour,

    J'utilise dans mon script les variables $GLOBALS. Je viens de passer 15mn a resoudre un bug qui concerne la reaction des variables ... Une belle perte de temps

    En fait pour mes connexions, j'utilise une variable que je retoruve un peu partout : $GLOBALS["BDD"]. Cette variable contient un objet qui gere une et une seule connexion a la bdd. L'idee est que pour ouvrir une nouv.elle connexion, je n'ai qu'a creer une instance nouvelle de cette objet et je n'ai ainsi jamais de confusions dans mes connexions.

    Comme je suis un grosse banane, j'ai nomme une deuxieme connexion $BDD, qui est utilisee dans ma page, et n'a pas besoin d'avoir une portee globale quand a elle.

    Le soucis c'est que creer une variable $BDD a ecrase ma variable $GLOBALS["BDD"] !!!

    J'aimerai savoir s'il existe un moyen de pallier a ca, je trouve ca tres grave, car je risque a tout moment de faire une confusion ...

  2. #2
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 228
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 228
    Points : 8 487
    Points
    8 487
    Billets dans le blog
    17
    Par défaut
    C'est un comportement qui est normal.
    De la doc sur $GLOBALS http://fr3.php.net/manual/fr/reserve...es.globals.php

    Pour y palier :
    - d'une manière générale utiliser des variables globales est considéré comme déstructurant
    - tu peux encapsuler $GLOBALS de manière à enregistrer tes globales dans mettons $GLOBALS['Registre'] ou même $GLOBALS['Registre de mon application']

  3. #3
    Membre éclairé
    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
    Points : 689
    Points
    689
    Par défaut
    Qu'est ce que tu entends par déstructurant ? Ca irait a l'encontre des fonctionnalités "normales" de PHP ?

  4. #4
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 228
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 228
    Points : 8 487
    Points
    8 487
    Billets dans le blog
    17
    Par défaut
    Non, pas de contre-indication par rapport à PHP, simplement il faut y aller doucement, autrement tu te retrouves vite avec du code spaghetti

  5. #5
    Membre éclairé
    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
    Points : 689
    Points
    689
    Par défaut
    Ok, j'en a pas 12 000 non plus, juste une connexion principale a la bdd, et des classes de gestion des fichiers, chaines, etc ... Des outils importants et omnipresents.

    Je n'utilise pas ca pour faire transiter de l'information.

  6. #6
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 228
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 228
    Points : 8 487
    Points
    8 487
    Billets dans le blog
    17
    Par défaut
    Hum pour la BdD je vois l'intérêt, pour les fichiers et chaînes moins a priori.
    Regarde si le pattern Singleton te convient : http://fr.php.net/manual/fr/language.oop5.patterns.php

  7. #7
    Membre éclairé
    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
    Points : 689
    Points
    689
    Par défaut
    Je vais lire, mais ca va necessiter plus que 5 mn pour que je poste un retour

    Pour mes histoires de fichiers et chaines, j'ai une classe Fichier et une classe Chaine que j'instancie en debut de programme. Je les utilise a tous les coups ces deux la. Elle me permettent respectivement de d'ouvrir, lire des fichier / dossiers, compresser / decompresser des elements et de traiter les chaine pour les envoyer correctement formatées a la partie template. Bon Fichier, elle sert ptet pas partout maintenant que j'y pense ^^ ...

Discussions similaires

  1. Réponses: 2
    Dernier message: 11/05/2006, 19h21
  2. portée des variables globales dans un fichier js
    Par crakazoid dans le forum Général JavaScript
    Réponses: 19
    Dernier message: 14/04/2006, 16h49
  3. utilisation des variables global dans tout le projet
    Par EYENGA Joël dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 12/01/2006, 10h55
  4. [POO] Portée des variables, classe....
    Par Avatar dans le forum Langage
    Réponses: 3
    Dernier message: 27/11/2005, 21h25
  5. De la bonne pratique des variables globales...
    Par say dans le forum C++Builder
    Réponses: 9
    Dernier message: 25/11/2005, 09h47

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