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] Solution d'objet en session partagé. Bon ou pas bon ? [Tutoriel]


Sujet :

Langage PHP

  1. #1
    Expert éminent
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 501
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 501
    Points : 6 086
    Points
    6 086
    Par défaut [POO] Solution d'objet en session partagé. Bon ou pas bon ?
    Bonjour,
    J'ai besoin d'avis de spécialiste un peut
    Voila, dans mon application j'ai des objets qui seront souvent utilisé. Dans mon cas "Catégorie". Il y a beaucoup d'objet qui tourne autour de ça.
    Pour des raisons de gestion de ressource SQL. Je ne souhaite charger tous le temps la même information pour chaque utilisateur. Donc j'ai pensé à un truc.
    Comme dans le J2EE il est possible de lever des objets dont il puise ses informations dans une base de données.
    Ceci signifie qu'il se connecte une fois à la base. De plus les session peuve être public. C'est à dire qu'elle peuve être partagé par tous le monde. En php ces deux élément n'existe pas en natif mais peuve être simulé.
    - Il est possible de sérialisé un objet.
    - Il est possible de créer un fichier pour enregistrer le contenu de l'objet.
    De là, il est donc possible de lire directement le contenu du fichier est de déserialiser le contenu.

    Les avantages : Les requêtes, traitement souvent repété sont déjà rangé dans un objet une fois. L'opération est faite que si le fichier n'hexiste pas.

    Inconvénient : Lecture de fichier qui peut être plus long qu'une requête. Donc il faut se dire que nous ne pouvons pas tous placer dans le fichier surtout si cela ne sert à rien.


    En résumé : Emulez les objets partagés sans devoir faire le traitement pour chaque client, page. De plus l'information n'est dupliqué sur chaque session. 1 Session = 1 multiplié par le nombre de client = fichier sur le serveur. La c'est X client multiplié par 1.

    bonne idée ou pas ?

  2. #2
    Membre expérimenté
    Avatar de Rakken
    Homme Profil pro
    Inscrit en
    Août 2006
    Messages
    1 257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 257
    Points : 1 341
    Points
    1 341
    Par défaut
    Pour ce que j'en sais, une lecture en base est plus rapide que la lecture d'un fichier (quoique sur de petits volumes j'ai un doute, un bench ne serait pas une mauvaise idée).
    Par contre, j'imagine que tu peux te creer une table "cache" qui contient ton objet serializé.

    Pour ce qui est des temps de traitement... faut que tu te fasse des benchmarks pour savoir, parce qu'en fonction de la maniere dont est créé ton objet (par exemple, il est chargé a partir d'une table ? deux ? vingts ? Il y a beaucoup de calcul de fait dans ton objet ?) et sa taille le choix de la méthode varie.

    En gros, il faut que tu connaisse le temps de "création" pure de ton objet avec requetes en base et tout et tout. Et il faut que tu connaisses le temps de "récupération" d'un objet (lecture en base/lecture de fichier + temps de déserialization).

    Et que le meilleur gagne ^_^

    Il faut également avoir en tête que se creer un cache, c'est devoir le gèrer correctement pour les mises a jour, c'est souvent du boulot en plus, faut être sur que le gain en vaut la chandelle.

    Pour finir, a vu de nez, je dirais que tu n'y gagneras probablement pas énormement en terme de performance (voir pas du tout), sauf si ton objet est vraiment complexe, mais avec un nom comme "catégorie", c'est peu probable ;-))

    --
    Rakken

  3. #3
    Expert éminent
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 501
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 501
    Points : 6 086
    Points
    6 086
    Par défaut
    Citation Envoyé par Rakken
    Pour ce que j'en sais, une lecture en base est plus rapide que la lecture d'un fichier (quoique sur de petits volumes j'ai un doute, un bench ne serait pas une mauvaise idée).
    Par contre, j'imagine que tu peux te creer une table "cache" qui contient ton objet serializé.

    Pour ce qui est des temps de traitement... faut que tu te fasse des benchmarks pour savoir, parce qu'en fonction de la maniere dont est créé ton objet (par exemple, il est chargé a partir d'une table ? deux ? vingts ? Il y a beaucoup de calcul de fait dans ton objet ?) et sa taille le choix de la méthode varie.

    En gros, il faut que tu connaisse le temps de "création" pure de ton objet avec requetes en base et tout et tout. Et il faut que tu connaisses le temps de "récupération" d'un objet (lecture en base/lecture de fichier + temps de déserialization).

    Et que le meilleur gagne ^_^

    Il faut également avoir en tête que se creer un cache, c'est devoir le gèrer correctement pour les mises a jour, c'est souvent du boulot en plus, faut être sur que le gain en vaut la chandelle.

    Pour finir, a vu de nez, je dirais que tu n'y gagneras probablement pas énormement en terme de performance (voir pas du tout), sauf si ton objet est vraiment complexe, mais avec un nom comme "catégorie", c'est peu probable ;-))

    --
    Rakken
    Ces question je me l'étais posé car en effet ça depend de l'usage. Je pense surtout par exemple au nombre de catégorie que possede amazon. Pour t'expliquer le cas des catégorie.

    Une catégorie à des sous catégorie et chaque sous catégorie peut en avoir encore. Bref il y a pas de limite. C'est un systeme hierarchique donc un objet posse une collection d'autre objet de même type. Deux solutions :
    - Soit je créé une requête pour récupérer tous les fils donc une requête à chaque noeud. L'avantage : c'est déjà rangé. Inconvéniant : 1000 noeud = 1000 requêtes.
    - Faire une requête qui récpère toute les catégories et je les ranges via une methode. Avantage : Les ressource db sont largement light. Inconvéniant : Le temps de calcule peut augmenter selon le nombre.

    Ma contrainte est qu'il faut que ça soit fluide jusqu'a :
    100 catégories. Chaque catégorie à 100 sous catégorie. A une profondeur de 100 niveaux. Je sais pas si le calcule est bon. 100x100x100 = 1 000 000 catégories. Je ne connais pas l'utilisation finale donc les tests de performance ça sera la marge à indiquer.

    J'ai pris "catégorie" comme exemple mais il y a d'autre élements qui seront calculés.

    Effectivement, je peux utiliser un cash db optimisé pour la lecture pure en memory qui sera plus bien plus rapide.

  4. #4
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 440
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 440
    Points : 15 814
    Points
    15 814
    Par défaut
    en ce qui concerne la gestion d'une arborescence à plusieurs niveaux, tu peux optimiser la lecture de la base de données grace à la structure suivante :
    http://sqlpro.developpez.com/cours/arborescence/

  5. #5
    Expert éminent
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 501
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 501
    Points : 6 086
    Points
    6 086
    Par défaut
    J'avais lu cette article intéressant au début. Problème c'est que ceci fonctionne sur une table stable static dont les id son dans l'ordre croissant.
    Mon problème c'est que dans mon application les fils peuvent changer de parent. Là ça change tous.

  6. #6
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 440
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 440
    Points : 15 814
    Points
    15 814
    Par défaut
    Citation Envoyé par berceker united
    J'avais lu cette article intéressant au début. Problème c'est que ceci fonctionne sur une table stable static dont les id son dans l'ordre croissant.
    Mon problème c'est que dans mon application les fils peuvent changer de parent. Là ça change tous.
    à toi de faire les alogrithmes pour calculer les nouvelles positions en cas de déplacement. dans l'article tu as déjà les algoroithmes expliqués pour l'ajout ou la suppression d'éléments

  7. #7
    Expert éminent
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 501
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 501
    Points : 6 086
    Points
    6 086
    Par défaut
    Mon problème ne se situ pas du coté SQL. La génération de mon arbo fonctionne. Le tous est géré en objet c'est à dire que l'arbre est présent dans un objet.
    Ma question est qu'au final j'ai mon objet entier. Plutôt que de recalculer "qui est le fils de qui" pour reconstruire après le même objet.
    Ne serait il pas plus simple de conserver l'objet en le stockant dans une source de données.
    Un enregistrement dans une base ou stocké dans un fichier partagé par tous le monde. En gros, émuler une variable de session partagée.

  8. #8
    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 : 50
    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
    Une table temporaire de type MEMORY n'offre-t-elle pas déjà un gain de performances par rapport à une table ISAM ?
    Et dans cette table, il doit être possible de stocker l'objet avec toutes ses données agrégées plutôt que toutes les colonnes à recalculer.

  9. #9
    Expert éminent
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 501
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 501
    Points : 6 086
    Points
    6 086
    Par défaut
    Citation Envoyé par jml94
    Une table temporaire de type MEMORY n'offre-t-elle pas déjà un gain de performances par rapport à une table ISAM ?
    Et dans cette table, il doit être possible de stocker l'objet avec toutes ses données agrégées plutôt que toutes les colonnes à recalculer.
    Ben c'est de cela que je parlais et ce qui m'a été conseillé par Rakken. J'ai ajouté le faite que ça serait une table de type memory mais pas une table de type temporaire.
    A partir ou il y a un changement dans la source de données elle génère automatique l'objet qui fera une mise à jour dans cette table.

  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 : 50
    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
    Autant pour moi, je n'avais pas bien lu ton message.

  11. #11
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    625
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 625
    Points : 822
    Points
    822
    Par défaut
    hello,

    j'ai un gros doute (parce que je suis une quiche en maths) mais :

    100 rubriques avec 100 sous-rubriques sur 100 niveaux... ca donne pas plutot un truc du genre 100^100 ? et du coup un truc légerement ingérable ?

    hormis cela... en général tu n'affiches que la descendance directe d'une arbo... c'est peut etre un peu plus simple et plus efficace d'utiliser une base de données qu'un tableau sérialisé (ou un objet on s'en fout) contenant N milliards d'index

  12. #12
    Membre expérimenté
    Avatar de Rakken
    Homme Profil pro
    Inscrit en
    Août 2006
    Messages
    1 257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 257
    Points : 1 341
    Points
    1 341
    Par défaut
    Vu la taille potentielle de tes données, serialiser le tout dans un fichier me semble suicidaire. Tu devrais repenser à l'idée des arbres intervallaire qui ont certes l'inconvénient d'être très lourd pour chaque mise à jour mais aussi (et surtout) l'énorme avantage d'être très rapide en consultation, et dans la mesure ou tu songeait a faire un système de cache, la mise à jour doit être relativement rare et pouvoir se permettre d'attendre un peu.

    Si tu te fait une ptite classe bien pensée, tu peux avec ca récuperer l'intégralité des fils d'un noeud donné, à une profondeur donnée, en seulement une requête, (genre : select * from arbre_cat where val_noeud < xx and val_noeud > yy and pronfondeur=yy) donc en terme de perf, j'pense pas que tu puisse faire mieux.
    Après en mettant quelques index sur ta table d'arbre, tes perfs devraient rester raisonnable (considérant le volume a traiter)

    Ca a aussi l'avantage de ne pas être un système de cache, donc avec des données toujours à jour.

    --
    Rakken

  13. #13
    Expert éminent
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 501
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 501
    Points : 6 086
    Points
    6 086
    Par défaut
    Houla alors si le calcul de Petibidon est correcte c'est pas jouable et improbable qu'il y ait une tel utilisation. Je vais reduire le test de volume de telle sorte que je puisse avoir au total 1000 categories.

    La requête la plus speed est SELECT [...] FROM categorie ORDER BY parent_id, ordre. En gros car il y a beaucoup d'autre dépendance.
    A partir de là j'aurais une methode qui range les noeuds mais cette opération je veux la réaliser la moin possible d'ou l'idée de sérialiser l'objet total.
    Dans les exemples que vous avez cité je retourne qu'un segment de l'arbre alors que dans l'apli j'aurais quasiment tous le temps d'avoir acces à l'abre entier.

    La modification d'une catégorie seront très rare, du moin je pense (je sais pas ce que va en faire l'utilisateur) mais il y a pas de raison que sa move. Il y a trop d'élement qui en dépende.
    Le précessus pour une modification :
    - Copie des données pour qi'll y ait aucune incidence sur les données réele
    - Modification, suppression ou ajout.
    - Contrôle de l'intégrité de l'information par rapport au autre éléments existant
    - Soumission à un responsable qui contrôle le tous.
    - Si ok il lance le processus de mise à jour sur les tables > génération de l'objet > Mise en cach.

  14. #14
    Expert éminent
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 501
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 501
    Points : 6 086
    Points
    6 086
    Par défaut
    Après avoir fait de test de performance sur 10 000 catégories sur 100 noeuds.
    Les différentes techniques.

    1 - Faire un select qui recupère à chaque fois les fils du parents.
    Avantage : Les fils sont chargé directement dans la parent, c'est donc déjà rangé.
    Inconvéniant : 100 noeud = 100 requêtes.
    Temps : 0,8s

    2 - Faire un select simple. Les objets se trouve dans un tableau. Je parcours le tableau et les parents cherchent ses enfants.
    Avantage : 1 requête quasiment liniaire donc rapide.
    Inconvéniant : temps de calcule sur du gros volume.
    Temps 0,65s

    3 - Même technique que la deuxième sauf que l'objet final est sérialisé et placé dans une table de type memory. J'utilise les methodes spécifiques de php5 telle que :wakup et sleep
    Temps 0.65s pour la première étape.
    L'acces à l'objet par la suite 0.003s.

  15. #15
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    625
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 625
    Points : 822
    Points
    822
    Par défaut
    question bete...

    pourquoi tu veux charger tes 10000 catégories dans ton objet ? ne peux tu pas simplement charger les catégories nécessaires à ton script courant ?

    perso j'ai beaucoup de mal à comprendre ce que tu veux faire.

  16. #16
    Expert éminent
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 501
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 501
    Points : 6 086
    Points
    6 086
    Par défaut
    Citation Envoyé par Petibidon
    question bete...

    pourquoi tu veux charger tes 10000 catégories dans ton objet ? ne peux tu pas simplement charger les catégories nécessaires à ton script courant ?

    perso j'ai beaucoup de mal à comprendre ce que tu veux faire.
    C'est simplement une phase de test sur le volume.
    L'application n'est pas destiné à un client spécifique. Je ne connais pas leur volume d'utilisation donc je fais des test pour que je puisse garantir que l'application est stables jusqu'a x éléments sur n niveaux.
    Il y a des cas ou les catégories sont toute chargées.

    Dans des projets web, bien souvent nous faisons pas de test sur le volume.
    Si nous donnons pas de limite supérieur alors il faut tester le volume. Dans un développement sensible il faut faire ce genre de test. ceci permet de détecter les faiblesses. Des résultats retourné, il faut adapter le code.
    Personnellement, je ne vois pas qui pourrait à avoir 10 000 catégories .

  17. #17
    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 : 50
    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
    C'est vrai que ces tests peuvent être nécessaire si les volumes de données sont susceptibles d'exploser.
    Mais ces volumes doivent d'abord être évalués (limite basse, limite haute) pour pouvoir ensuite élaborer un modèle d'accès aux données performant.
    Je veux dire par là que c'est plus que de l'adaptation de code, c'est peut-être l'architecture même de la base qui doit être différente en fonction des volumes traités et des priorités de l'appli.
    C'est par exemple la différence entre une base de données relationnelles optimisée pour l'intégrité des données et un datawarehouse optimisé pour l'accès à ces même données.

  18. #18
    Expert éminent
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 501
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 501
    Points : 6 086
    Points
    6 086
    Par défaut
    Citation Envoyé par jml94
    C'est vrai que ces tests peuvent être nécessaire si les volumes de données sont susceptibles d'exploser.
    Mais ces volumes doivent d'abord être évalués (limite basse, limite haute) pour pouvoir ensuite élaborer un modèle d'accès aux données performant.
    Je veux dire par là que c'est plus que de l'adaptation de code, c'est peut-être l'architecture même de la base qui doit être différente en fonction des volumes traités et des priorités de l'appli.
    C'est par exemple la différence entre une base de données relationnelles optimisée pour l'intégrité des données et un datawarehouse optimisé pour l'accès à ces même données.
    Je suis daccord avec toi. C'est pourquoi j'ai testé si avec 10 catégories il avait pas de trop grosse différence. Comme je l'ai précisé, 10k catégories même amazon n'a pas autant. En fait, l'application c'est une boutique en ligne générique.

  19. #19
    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 : 50
    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
    Ah, le générique...
    Quel beau mot, qui n'est supplanté que par l'utopique "universel".
    Une bien belle idée, mais si difficile à concrétiser...

    Quoi qu'il en soit, il est évident que tu as toutes les cartes en main pour réaliser l'appli, aussi ne puis-je que te souhaiter bonne chance.

    PS : si vraiment tu arrive à produiire le script générique pour toute boutique en ligne, je te propose de monter une start-up pour vendre le concept. Disons une association 98% pour toi, 2% pour moi. J'apporterais le café le matin et je m'y retrouverais largement sur le plan financier !

  20. #20
    Expert éminent
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 501
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 501
    Points : 6 086
    Points
    6 086
    Par défaut
    Citation Envoyé par jml94
    Ah, le générique...
    Quel beau mot, qui n'est supplanté que par l'utopique "universel".
    Une bien belle idée, mais si difficile à concrétiser...

    Quoi qu'il en soit, il est évident que tu as toutes les cartes en main pour réaliser l'appli, aussi ne puis-je que te souhaiter bonne chance.

    PS : si vraiment tu arrive à produiire le script générique pour toute boutique en ligne, je te propose de monter une start-up pour vendre le concept. Disons une association 98% pour toi, 2% pour moi. J'apporterais le café le matin et je m'y retrouverais largement sur le plan financier !
    Merci parce que je peux t'avouer que c'est pas simple et comme mon souhait c'est de ne pas pondre une merde donc je pose ce genre de question. Si tu regardes mes postes tu comprendras sur mes question

Discussions similaires

  1. Code bon, mais pas bon..
    Par Frenchguy dans le forum VBA Access
    Réponses: 5
    Dernier message: 25/05/2007, 15h46
  2. [POO] PHP5 objet et session
    Par deborah95 dans le forum Langage
    Réponses: 4
    Dernier message: 17/04/2007, 21h58
  3. [AJAX] multithreads et sessions PHP ne font pas bon ménage !
    Par Tanhys dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 29/10/2006, 16h47
  4. [POO] Stockage de référence objet en session
    Par starn2000 dans le forum Langage
    Réponses: 4
    Dernier message: 26/07/2006, 16h35
  5. Réponses: 5
    Dernier message: 27/10/2005, 13h23

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