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 :

[php objet] constructeur lancer à chaque changement de page


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 26
    Par défaut [php objet] constructeur lancer à chaque changement de page
    voilà, je compte utilisé les objets en php.
    je me suis retrouver face à un problème qui est que le constructeur se lance à chaque changement de page et j'ai pas trouver le moyen de garder les objets.

    en gros, j'ai un objet noyaux qui contient en ensemble d'autre objet pour la construction de la page.
    le constructeur de mon noyau initialise différent objet qu'il contient, comme l'objet menu.
    dans cet objet menu, le constructeur fait une requète sql pour générer le menu. et ces requètes ne doivent être faites que s'il y a un changements dans les autorisations.
    genre un visiteur non logué n'as pas le même menu qu'un visiteur logué et qu'un admin logué.
    donc en gros il ne devrait il y avoir de requète sql pour le menu qu'à l'ouverture du site et au log on de l'utilisateurs.

    et dans le cas présent, il y a des requètes à chaque fios qu'on navigue sur le site.

    si quelqu'un a une solutions à proposé, je suis preneur.

    si je demande de l'aide ici, c'est que j'ai pas trouvé par mes propres recherches.
    veuillez m'excuser si la réponse est présente ici, je ne l'ai pas trouvé

  2. #2
    Membre Expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Par défaut
    Pour passer les objet d'une page a l'autre il te faut utiliser serialize et unserialize Et les variables de sessions

    Par contre il te faudra definir dans ta classe les methodes __sleep et __wakeup.
    Au moins __sleep en tous cas

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 26
    Par défaut
    pourquoi des sleep? je coupe les connection sql sql après chaque requète.

    le serialize, pour les objets avec des collections d'objet, je ne le fais que sur celui qui les contients? ou je doit aussi le faire pour les objets contenu dans celui ci?


    donc si j'ai bien suivit ça donnerais ça:

    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
     
    <?php
    session_start();
    include ('fichierdelaclass.php');
     
    if ($_SESSION['myobject']=='')
    {
         $object=new nomclass();
    }
    else
    {
         $object=unserialize($_SESSION['myobject']);
    }
     
    //utilisation de l'objet
     
    $_SESSION['myobject']=serialize($object);
    ?>
    ça serait quelque chose comme ça alors?

  4. #4
    Membre Expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Par défaut
    Non pas des sleep! une methode __sleep, elle sert a specifier a serialize ce qu'il doit traiter comme variable
    Sinon oui ton code est pas mal teste mais tu risque d'avoir une surprise

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 26
    Par défaut
    en fait la question avec __sleep , c'était est ce que c'est obligatoire s'il n'y a pas de connection ouverture. parce que normalement quand j'arrive au serialize à la fin du script, toutes les connections sql sont fermées.

    oups, j'ai oublié des virgules dans mon code. pas bien. bon je vais test ça.

  6. #6
    Membre Expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Par défaut
    Oui test, parce que moi j'avais pas mit de __sleep et je n'avais pas le données comme il fallait

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

Discussions similaires

  1. [1.x] exécution d'une action a chaque changement de page
    Par Tiph13 dans le forum Symfony
    Réponses: 2
    Dernier message: 15/12/2010, 12h12
  2. header disparait et réapparait à chaque changement de page
    Par antho2601 dans le forum Général Conception Web
    Réponses: 5
    Dernier message: 08/10/2010, 10h39
  3. Réponses: 0
    Dernier message: 08/04/2010, 22h31
  4. Réponses: 1
    Dernier message: 12/03/2009, 20h31
  5. reinitialisation d'une session a chaque changement de page
    Par RR instinct dans le forum Langage
    Réponses: 3
    Dernier message: 26/10/2006, 17h09

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