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 :

Variables statiques et PHP


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5
    Par défaut Variables statiques et PHP
    Bonjour,

    je cherche comment definir des variables statiques en PHP. Attention, statique dans le sens Java, parce qu'apparemment les variables statiques en PHP ca n'a rien a voir.

    Donc ce que je veux, c'est definir une variable tel que :
    - si je modifie la valeur lors d'une requete, je dois retrouver ma valeur lors de la requete suivante.
    - si un utilisateur effectue une requete qui modifie la variable, cela impacte egalement les autres utilisateurs.

    Si vous connaissez le Java, ce que je veux, c'est donc exactement ce qu'est une variable statique en Java.

    C'est possible de faire ca en PHP?

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 138
    Par défaut
    Salut,

    Il me semble qu'en PHP les variables sont plus ou moins toutes "static" au sens de JAVA. Tu as aussi les variables de session qui poussent l'exemple à son paroxysme.

    Cordialement,

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5
    Par défaut
    Citation Envoyé par Evilam Voir le message
    Salut,

    Il me semble qu'en PHP les variables sont plus ou moins toutes "static" au sens de JAVA. Tu as aussi les variables de session qui poussent l'exemple à son paroxysme.

    Cordialement,

    Non, d'apres les tests que je suis en train de faire, ca n'a rien a voir.
    Ce dont j'ai besoin, c'est encore au-dela des variables de session : la variable doit en effet etre partagee par toutes les sessions.

    Une idee?

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5
    Par défaut
    En fait mon besoin fonctionnel est le suivant : j'aimerais definir un "mode maintenance" sur un site web. Un administrateur va en back-office, passe le site en mode maintenance, et ca impacte instantanement tous les utilisateurs.

    Mon idee etait donc d'utiliser une simple variable partagee par toutes les sessions, mais je n'ai pas l'impression que cela soit possible en PHP. Comment feriez-vous pour developper un tel "mode maintenance"?

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 138
    Par défaut
    Tu peux mieux définir ceci s'il te plait ? :
    ca impacte instantanement tous les utilisateurs.

  6. #6
    Membre chevronné Avatar de goodpz
    Profil pro
    Inscrit en
    Février 2007
    Messages
    475
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 475
    Par défaut
    Mon idee etait donc d'utiliser une simple variable partagee par toutes les sessions, mais je n'ai pas l'impression que cela soit possible en PHP. Comment feriez-vous pour developper un tel "mode maintenance"?
    Les variables php ne persistent pas d'une requête à l'autre. Quand on veut avoir cette persistance, on utilise une base de données ou des fichiers.
    Ton "mode maintenance" pourrait simplement dépendre de la valeur d'un champ dans ta base de donnée.

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5
    Par défaut
    Citation Envoyé par Evilam Voir le message
    Tu peux mieux définir ceci s'il te plait ? :

    Et bien le mode manitenance consiste a afficher une page de maintenance quelque soit la requete effectuee par l'utilisateur.
    Donc : un administrateur effectue la modification en back-office, et, a partir de ce moment, n'importe quel utilisateur qui effectue une requete sur le site tombe sur la page de maintenance.

  8. #8
    Membre émérite
    Avatar de Antoine_935
    Profil pro
    Développeur web/mobile
    Inscrit en
    Juillet 2006
    Messages
    883
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur web/mobile

    Informations forums :
    Inscription : Juillet 2006
    Messages : 883
    Par défaut
    Citation Envoyé par cosmo78 Voir le message
    Ce dont j'ai besoin, c'est encore au-dela des variables de session : la variable doit en effet etre partagee par toutes les sessions.

    Une idee?
    Mmmmh, tu cherches trop compliqué. Ce n'est pas une variable statique dont tu as besoin, c'est un fichier / table sql de configuration qu'il te faut

  9. #9
    Membre actif
    Profil pro
    Inscrit en
    Août 2003
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 13
    Par défaut
    Je comprend tout à fait ce que tu cherchais l'année dernière, je commence php et j'en ai besoin. Je trouve incompréhensible que ça n'existe pas dans php.

    Donc pour résumer :

    1. _SESSION ne permet pas ce que tu veux faire puisqu'il n'est pas cross-session
    2. La base de données est une mauvaise idée, parce que si tu testes la variable que tu veux stocker genre
      if (mode == "debug"), à vraiment beaucoup d'endroits, alors :
      • soit tu fais un nombre vraiment pas optimisé de requête dans chaque fonction
      • soit t'es obligé de redéclarer quelque chose en haut de chaque page php (une variable globale ou faire un include qui lui fera la déclaration de la variable ..)

      ==> c'est laid, lourd et lent .. les 3 L.
    3. Stocker dans un fichier et le relire à chaque fois (même problème que la base de données, par contre c'est un peu plus rapide)



    Donc comment faire ?
    Multiplier la vitesse de l'acces disque par 1 000 000 ?
    Ben en fait oui c'est possible : Faire un ramdisk.
    Ca nécessite surement certain droits (mais étant développeur tu dois pouvoir les obtenir facilement)
    En plus c'est tout à fait dans la philosophie linux ... donc ça fera plaisir à certain. Et ça me fait plaisir parce que ça use pas le disque dur pour rien.

    # mkdir apache_ramdisk
    # mount -t ramfs none apache_ramdisk


    Et voila !

  10. #10
    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 : 51
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Par défaut
    Citation Envoyé par Zero-c00l Voir le message
    [*]La base de données est une mauvaise idée, parce que si tu testes la variable que tu veux stocker genre
    if (mode == "debug"), à vraiment beaucoup d'endroits, alors :
    • soit tu fais un nombre vraiment pas optimisé de requête dans chaque fonction
    • soit t'es obligé de redéclarer quelque chose en haut de chaque page php (une variable globale ou faire un include qui lui fera la déclaration de la variable ..)

    ==> c'est laid, lourd et lent .. les 3 L.
    Peut-être est-ce parce que tu as une architecture 3L ...

    Dans une architecture avec un point d'entrée unique, MVC pour ne pas le nommer, un test à l'entrée sera suffisant...

Discussions similaires

  1. [PHP-JS] passage de variable de javascript à php
    Par msieurx dans le forum Langage
    Réponses: 5
    Dernier message: 30/10/2005, 20h42
  2. Réponses: 4
    Dernier message: 05/10/2005, 18h19
  3. Exportation de variable statique
    Par Laurent Gomila dans le forum C++
    Réponses: 16
    Dernier message: 31/08/2005, 16h32
  4. Acces à une variable-tableau de PHP
    Par Erwan21 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 09/02/2005, 13h55
  5. Types de variables entre mysql/php et flash
    Par ramses83 dans le forum Flash
    Réponses: 2
    Dernier message: 06/10/2003, 18h35

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