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 :

Objets serveur persistant


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mars 2010
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 42
    Par défaut Objets serveur persistant
    Bonjour,
    j'aimerai savoir y a t'il une possibilité de persisté mes objets, je ne veux pas a chaque connexion entre client serveur(envoi requête HTTP) je recréer mes objets..
    je veux les créer qu'une seul fois puis je les persiste ensuite je récupère seulement ses références(comme en java)????

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 448
    Par défaut
    salut,

    tu peux utiliser APC, memcache, les semaphores.

    De préférence APC, c'est plus rapide, sémaphore je n'ai pas utilisé, memcache utilise une pile tcp, c'est centralisé (si tu as plusieurs fronteux) mais plus lent (moi je trouve que cela n'en vaut pas la peine, et puis tu as vite fait de péter le quota de connexions).

    Dans le détails techniques, tu sérialises, tu désérialises, ça marche impec, en prod depuis des mois sur ma dal ça soulage à mort.

    a plus

  3. #3
    Membre averti
    Inscrit en
    Mars 2010
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 42
    Par défaut
    merci,
    mais y t'il plus des détails sur votre technique en utilisant serialize et unserialize???
    je n'arrive pas a comprendre clairement comment avec ces deux fct en peut persisté un objet??

  4. #4
    Membre averti
    Inscrit en
    Mars 2010
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 42
    Par défaut
    y a t'il un exemple??

  5. #5
    Membre averti
    Inscrit en
    Mars 2010
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 42
    Par défaut
    bon, c'est bon..
    voila mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    class C
    {
    .......
    }
     
    if(unserialize(apc_fetch($_POST['password_client']))==''){
    	$objC = new C('toto');
    	apc_add('objC',  serialize($objC)); 
    }
     
    $objC  = unserialize(apc_fetch($_POST['password_client']));
    var_dump($objC );
    merci encore une fois.
    juste pour me assurer.. lorsque j'ai plusieurs instanciation de mon class C (une instanciation pour chaque client), il n' y pas ni conflit ni écrasement des objets sérialisé nn?

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 448
    Par défaut
    juste pour me assurer.. lorsque j'ai plusieurs instanciation de mon class C (une instanciation pour chaque client), il n' y pas ni conflit ni écrasement des objets sérialisé nn?
    Je ne connais pas ton appli, mais pour ce qui me concerne je n'ai eu à gérer jamais plusieurs sources d'écritures simultanées pour une même donnée possible.
    En fait je met à jour le cache à chaque update de base, c'est un mécanisme intégré à ma dal, si je delete une source en base, je la supprime du cache, de même pour les insert / update ect.

    Je ne m'était pas posé cette question de l'éventualité d'avoir plusieurs sources d'écritures, éventuellement simultanés, pour un même objet, mais en y réfléchissant, je ne voit pas de solutions pour s'assurer de la cohérence des données dans un tel cas avec php.
    A moins de rentrer dans un système de prxoy/servlet, mais cela devient lourd...

    Ce que je te propose plus haut est clairement un système optimiste.
    A toi de juger de sa viabilité dans ton appli.

    Pour infos, je restreint mes caches à certains types de données, toute la données ne mérite pas le cache.

  7. #7
    Membre averti
    Inscrit en
    Mars 2010
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 42
    Par défaut
    il y a une autre solution pour persister le objet: l'ORM (object-relational mapping) comme hibernate en java on trouve doctrine en php... je veux savoir quel est la meilleur solution pour résoudre le problème de persistance des objets pour les application web soit APC soit ORM???

  8. #8
    Membre éclairé Avatar de kanzarih
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Novembre 2002
    Messages
    327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Novembre 2002
    Messages : 327
    Par défaut
    Bonsoir,

    Regarde par ici


Discussions similaires

  1. [2.x] objet non persistant malgre le codage
    Par Philcmoi dans le forum Symfony
    Réponses: 7
    Dernier message: 07/04/2014, 13h07
  2. Objet application / persistant
    Par dehbi dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 04/02/2009, 23h52
  3. Réponses: 2
    Dernier message: 25/11/2008, 14h28
  4. Réponses: 2
    Dernier message: 02/04/2008, 19h26
  5. [Struts][DynaActionForm et persistance des objets]
    Par jcos dans le forum Struts 1
    Réponses: 4
    Dernier message: 22/12/2004, 10h15

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