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 :

[PHP8] [Article] Les nouveautés de PHP8 [Tutoriel]


Sujet :

Langage PHP

  1. #1
    Membre émérite
    Avatar de Alexandre T
    Homme Profil pro
    Chef de projets AMO
    Inscrit en
    mai 2002
    Messages
    1 213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets AMO
    Secteur : Transports

    Informations forums :
    Inscription : mai 2002
    Messages : 1 213
    Points : 2 779
    Points
    2 779
    Par défaut [PHP8] [Article] Les nouveautés de PHP8
    Bonjour à tous,

    Nouvel article dans la rubrique PHP : Les nouveautés de PHP8 !

    Comme l'article vous y invite, n'hésitez pas à donner votre avis sur :


    Bref, n'hésitez pas à donner votre avis sur l'ensemble des nouveautés de PHP8.

    Merci !
    Alexandre Tranchant
    Chef de projet AMO pour le Cerema.
    Retrouvez mes articles sur PHP et Symfony

  2. #2
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Architecte Web / Android
    Inscrit en
    août 2003
    Messages
    6 212
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Architecte Web / Android
    Secteur : Industrie

    Informations forums :
    Inscription : août 2003
    Messages : 6 212
    Points : 17 784
    Points
    17 784
    Par défaut
    mixed et union type : Enfin !
    Qu'est ce que c'est lourd actuellement d'avoir quais la totalité du code typé correctement sauf quelques parties qui retourne des type mix.

    Les weakmap j'ai du mal à voir leur intérêt en PHP . Autant dans des langages comme java ou le code vie longtemps ca a du sens , autant en php où tout disparaît une fois le code exécuté j'ai plus de mal. Jamais en PHP je me suis retrouvé dans le besoin d'une weakmap.

    Pour les constructeurs promouvants , comme déjà dit ici, je suis mitigé
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre émérite
    Avatar de Alexandre T
    Homme Profil pro
    Chef de projets AMO
    Inscrit en
    mai 2002
    Messages
    1 213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets AMO
    Secteur : Transports

    Informations forums :
    Inscription : mai 2002
    Messages : 1 213
    Points : 2 779
    Points
    2 779
    Par défaut
    Citation Envoyé par grunk Voir le message
    mixed et union type : Enfin !
    Qu'est ce que c'est lourd actuellement d'avoir quais la totalité du code typé correctement sauf quelques parties qui retourne des type mix.
    Oui je partage totalement ton point de vue !
    Citation Envoyé par grunk Voir le message
    Les weakmap j'ai du mal à voir leur intérêt en PHP . Autant dans des langages comme java ou le code vie longtemps ca a du sens , autant en php où tout disparaît une fois le code exécuté j'ai plus de mal. Jamais en PHP je me suis retrouvé dans le besoin d'une weakmap.
    Voici un exemple, dis-moi s'il te parle : Admettons que tu veuilles aussi gérer l'état d'une liste d'objets (par exemple l'état de publication d'un ensemble d'articles). Tu crées une instance état à partir de la classe WeakMap. Tu passes chacun de tes objets en clé de la WeakMap et tu peux mémoriser son état (cet état n'est pas forcément une chaine de caractère, cela peut-être un objet !). Quand l'objet saute, la WeakMap reste à jour, car elle perd la clé ! Quand tu veux parcourir ta liste d'états, c'est facile, car la WeakMap est itérable.

    Voici la documentation en français de la WeakMap

    Citation Envoyé par grunk Voir le message
    Pour les constructeurs promouvants , comme déjà dit ici, je suis mitigé
    Sur ce point, je ne suis pas tout à faire d'accord avec toi. Je te rejoins sur la lecture d'un constructeur qui peut se compliquer surtout si le développeur mixe des arguments à promouvoir et des arguments normaux. C'est un coup à se casser les dents. Mais, je pense que dans le cas d'un DTO comme je l'ai noté dans mon exemple, le code devient bien plus clair. Ce serait dommage de s'en priver. C'est un peu comme les opérateurs '??' '' qui simplifie le code en une seule ligne, c'est bien, tant qu'on n'en abuse pas.
    Alexandre Tranchant
    Chef de projet AMO pour le Cerema.
    Retrouvez mes articles sur PHP et Symfony

  4. #4
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Architecte Web / Android
    Inscrit en
    août 2003
    Messages
    6 212
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Architecte Web / Android
    Secteur : Industrie

    Informations forums :
    Inscription : août 2003
    Messages : 6 212
    Points : 17 784
    Points
    17 784
    Par défaut
    Je comprend bien l'intérêt des références faibles dans des langages comme java ou c++ où je les utilises relativement souvent. Mais c'est parce que mon code vie longtemps, que j'ai plusieurs thread qui peuvent venir agir sur mes objets ,que je veux parfois libérer au plus vite des objets ou que je veux éviter une leak éventuelle à cause d'une référence .
    Mais en PHP comme 99% du temps mon code ne vie que quelques milliseconde , je n'ai pas de réel besoin de référence faible. Au pire ca leak jusqu'à la fin de l'execution de mon script et on en parle plus.
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre émérite
    Avatar de Alexandre T
    Homme Profil pro
    Chef de projets AMO
    Inscrit en
    mai 2002
    Messages
    1 213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets AMO
    Secteur : Transports

    Informations forums :
    Inscription : mai 2002
    Messages : 1 213
    Points : 2 779
    Points
    2 779
    Par défaut
    Pardon, j'avais mal compris ta remarque. Oui tu as raison, les applications développées en PHP en n'ont moins besoin que celles développées en Java ! À part les commandes back-end de Symfony pour gérer les workflows, je ne vois pas.
    Alexandre Tranchant
    Chef de projet AMO pour le Cerema.
    Retrouvez mes articles sur PHP et Symfony

  6. #6
    Membre éclairé
    Femme Profil pro
    Inscrit en
    juillet 2012
    Messages
    190
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Italie

    Informations forums :
    Inscription : juillet 2012
    Messages : 190
    Points : 684
    Points
    684
    Par défaut
    Merci beaucoup!

  7. #7
    Membre émérite
    Avatar de Alexandre T
    Homme Profil pro
    Chef de projets AMO
    Inscrit en
    mai 2002
    Messages
    1 213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets AMO
    Secteur : Transports

    Informations forums :
    Inscription : mai 2002
    Messages : 1 213
    Points : 2 779
    Points
    2 779
    Par défaut
    De rien ! Ce merci fait plaisir !
    Alexandre Tranchant
    Chef de projet AMO pour le Cerema.
    Retrouvez mes articles sur PHP et Symfony

  8. #8
    Membre confirmé
    Femme Profil pro
    Autre
    Inscrit en
    janvier 2017
    Messages
    310
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : janvier 2017
    Messages : 310
    Points : 639
    Points
    639
    Par défaut
    Bonjour,
    Citation Envoyé par Alexandre T Voir le message
    Sur ce point, je ne suis pas tout à faire d'accord avec toi. Je te rejoins sur la lecture d'un constructeur qui peut se compliquer surtout si le développeur mixe des arguments à promouvoir et des arguments normaux. C'est un coup à se casser les dents. Mais, je pense que dans le cas d'un DTO comme je l'ai noté dans mon exemple, le code devient bien plus clair. Ce serait dommage de s'en priver. C'est un peu comme les opérateurs '??' '' qui simplifie le code en une seule ligne, c'est bien, tant qu'on n'en abuse pas.
    Oui, sauf que cette mise à jour sera accessible à tous, pas seulement à ceux qui sauront l'utiliser à bon escient.

    La limite entre ce qui est abusif et ce qui ne l'est pas est floue et subjective.
    Il y aura sûrement des cas intermédiaires où le choix ne sera pas évident ou que la tentation de gagner des lignes l'emportera.
    Or, cette possibilité peut aboutir à une présentation disparate et peu cohérente des propriétés (dans une même classe ou d'une classe par rapport à une autre).

    De plus, la réalité est souvent piégeuse :
    En cours de réalisation, la conception s'affine, les besoins changent, un dysfonctionnement implique un correctif etc.
    Une mise à jour simple et rapide (on n'a pas toujours le temps ni la motivation) donnera souvent un code moins joli qu'espéré, sur la forme ou le fond.
    C'est à dire que certains choix initiaux paraissent inappropriés dans un deuxième temps suite à une mise à jour, mais qu'on ne peut/veut pas tout reprendre.

    Cela peut tout à fait se produire avec cette nouvelle possibilité.
    Après, ça reste de la forme, donc pas gravissime à priori.
    Et bien sûr, on ne peut pas interdire toute nouveauté sous prétexte qu'il y aura de mauvaises utilisations.
    Mais disons qu'on peut tout de même nuancer l'enthousiasme.

  9. #9
    Membre émérite
    Avatar de Alexandre T
    Homme Profil pro
    Chef de projets AMO
    Inscrit en
    mai 2002
    Messages
    1 213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets AMO
    Secteur : Transports

    Informations forums :
    Inscription : mai 2002
    Messages : 1 213
    Points : 2 779
    Points
    2 779
    Par défaut
    Tu as tout-à-fait raison. La réalité est souvent piégeuse et en pratique on est vite débordé, surtout en maintenance. C'est difficile de définir le juste milieu. Pour ma part, j'utilise PHPCsFixer, PHP Mess Detector et PHP Code sniffer. J'ai défini des règles pour nos projets, on les déclare comme script dans composer et on les ajoute à nos tests d'intégration. Du coup, quand un développeur qui participe au projet ne respecte pas les consignes, cela le lui signale aussitôt. C'est un enfer à gérer sur d'anciens projets, mais sur tout nouveau projet, on le met dès le début et ça marche plutôt bien. Maintenant, va falloir que ces outils s'adaptent à la nouvelle syntaxe et aux dérives que cela peut entraîner, mais je ne pense pas que ce sera compliqué. J'imagine bien une règle qui interdit de mixer des arguments promouvants et des arguments standards dans un constructeur.
    Alexandre Tranchant
    Chef de projet AMO pour le Cerema.
    Retrouvez mes articles sur PHP et Symfony

  10. #10
    Expert confirmé Avatar de Séb.
    Profil pro
    Inscrit en
    mars 2005
    Messages
    3 344
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

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

    Informations forums :
    Inscription : mars 2005
    Messages : 3 344
    Points : 4 413
    Points
    4 413
    Par défaut
    Déçu par str_contains() et str_begins/ends_with() et leur gestion des chaînes vides incohérente avec l'historique.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    str_contains('foo', ''); // true
    strpos('foo', ''); // false + warning
    Je sens poindre les bugs.
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  11. #11
    Membre expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    juin 2008
    Messages
    2 074
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : juin 2008
    Messages : 2 074
    Points : 3 532
    Points
    3 532
    Billets dans le blog
    8
    Par défaut
    Tu m'étonnes.
    Je réagis comme toi et pense que c'est contre-intuitif.
    Mais mon mari matheux trouve ça normal.
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

  12. #12
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Architecte Web / Android
    Inscrit en
    août 2003
    Messages
    6 212
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Architecte Web / Android
    Secteur : Industrie

    Informations forums :
    Inscription : août 2003
    Messages : 6 212
    Points : 17 784
    Points
    17 784
    Par défaut
    On va quand même pas commencer a avoir des comportements cohérents entre des fonctions d'une même famille 🤣
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  13. #13
    Membre émérite
    Avatar de Alexandre T
    Homme Profil pro
    Chef de projets AMO
    Inscrit en
    mai 2002
    Messages
    1 213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets AMO
    Secteur : Transports

    Informations forums :
    Inscription : mai 2002
    Messages : 1 213
    Points : 2 779
    Points
    2 779
    Par défaut
    Bonjour,

    Oui, je sens aussi les bugs poindre. Ce qui m'agace aussi, c'est de ne pas uniformiser le nom des fonctions. Le tiret bas est depuis la version 5, le caractère séparateur entre les mots des noms de fonction, mais aucun alias n'a encore été créé pour strpos. C'est donc peu probable que cette fonction sera dépréciée en version 8. Sinon, je partage le point de vue du mari de Dendrite, les deux résultats sont corrects et tout autre résultat serait à mon sens anormal.
    Alexandre Tranchant
    Chef de projet AMO pour le Cerema.
    Retrouvez mes articles sur PHP et Symfony

  14. #14
    Membre expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    juin 2008
    Messages
    2 074
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : juin 2008
    Messages : 2 074
    Points : 3 532
    Points
    3 532
    Billets dans le blog
    8
    Par défaut
    Et les haystacks et needles (sur toutes les fonctions) sont-ils enfin tous dans le même ordre depuis une certaine version ? Question de néophyte.
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

  15. #15
    Membre régulier
    Profil pro
    Inscrit en
    mai 2006
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mai 2006
    Messages : 75
    Points : 108
    Points
    108
    Par défaut
    Si j'ai bien compris, les attributs type ORM n'ont pas besoin d'être dans un commentaire, on va pouvoir désactiver opcache.save_comments, youhou !!!

  16. #16
    Membre régulier
    Profil pro
    Inscrit en
    mai 2006
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mai 2006
    Messages : 75
    Points : 108
    Points
    108
    Par défaut
    Bon ben, j'ai essayé php8, c'est top
    Interressant, vraiment typé, effectivement plus rapide ( je n'ai effectué que le "test de Mabdelbrot" cité dans l'article).
    Bref tout ça m'a l'ait très bien, mais, ..., j'ai essayé avec les 3 outils php que j'utilise le plus souvent :
    - Symfony => fatal error, absolument incompatible, par exemple la fonction PDOConnection::query() n'est pas compatible avec celle de la class héritée PDO::query( string $statement , int $fetch_style , ... )
    - Prestashop => fatal error, absolument incompatible, par exemple "array_key_exists( $propertyName, $classObject)" ne passe pas du tout en php8, et c' est très bien.
    - Wordpress => quelques warning et deprecated, sinon ça tourne nickel

    J'ai tenté quelques correctif, mais il y a vraiment trop à faire.
    Il semble que la compatibilité va être difficile à gérer, ..., sauf pour l'équipe de Wordpress ( souvent fustigé ici, c'est pourquoi je me permet de le souligner °)

  17. #17
    Expert confirmé Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    mars 2009
    Messages
    2 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : mars 2009
    Messages : 2 253
    Points : 4 891
    Points
    4 891
    Par défaut
    Citation Envoyé par Séb. Voir le message
    Déçu par str_contains() et str_begins/ends_with() et leur gestion des chaînes vides incohérente avec l'historique.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    str_contains('foo', ''); // true
    strpos('foo', ''); // false + warning
    Je sens poindre les bugs.
    On ne peut pas vraiment le reprocher, car le fait que strpos('foo', '') renvoie false avec un warning en plus est une aberration: la chaîne vide est présente à chaque position d'une chaîne. D'ailleurs dans les versions 8.0 alpha 1-2-3, ce comportement a été corrigé et strpos renvoie donc 0, ce qui du coup est au diapason avec les fonctions str_(contains|starts_with|ends_with).
    Brachygobius xanthozonus
    Ctenobrycon Gymnocorymbus

  18. #18
    Expert confirmé Avatar de Séb.
    Profil pro
    Inscrit en
    mars 2005
    Messages
    3 344
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

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

    Informations forums :
    Inscription : mars 2005
    Messages : 3 344
    Points : 4 413
    Points
    4 413
    Par défaut
    Qui cherche une chaîne vide ? Personne.
    Existe-t-il une utilité quelconque à ce comportement ?
    Je ne vois que des effets de bord.

    Pour moi, c'est comme dire que 0 est présent dans chaque addition 123 = 123 + 0, et que donc 123 == 0
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  19. #19
    Expert confirmé Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    mars 2009
    Messages
    2 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : mars 2009
    Messages : 2 253
    Points : 4 891
    Points
    4 891
    Par défaut
    Qui cherche une chaîne vide ?
    Toi au post #10.

    Existe-t-il une utilité quelconque à ce comportement ?
    La première utilité est la cohérence avec les autres fonctions, et dans l'absolue, le sens: renvoyer false ne veut rien dire, il ne s'agit pas d'une sous-chaîne absente. Après pour ce qui est de l'exploitation qu'on pourrait faire de ce résultat, il ne faut présumer de rien et le garder dans un coin de sa tête au cas où.

    c'est comme dire que 0 est présent dans chaque addition 123 = 123 + 0
    L'image est intéressante pour str_contains et cie: 0 est bien présent dans chaque nombre du point de vue de l'addition, dit autrement, 0 ne change pas le nombre auquel on l'additionne (c'est d'ailleurs grâce à cette propriété tellement évidente qu'on l'oublie qu'on peut résoudre un équation du type x + 10 = 15 en faisant apparaître 10 - 10 à droite). Pourtant à qui viendrait l'idée tordue d'interdire d'ajouter ou de retrancher 0 (de dire qu'il n'est pas là) sous prétexte qu'il ne change rien?

    On peut faire le même type de parallèle entre strpos et la multiplication par 0: la chaîne vide est l'élément absorbant de l'opérateur strpos puisque quelque soit la chaîne elle renverra le même résultat.

    La comparaison s'arrête là car dans les deux cas les "valeurs" renvoyées n'appartiennent pas aux mêmes ensembles que celui des opérandes. Malgré cela, je vois mal l'utilisation d'un quelconque langage qui balancerait des false assortis ou pas de warnings à chaque tentative d'addition ou de multiplication avec 0 si ce n'est au club informatique de Ste Anne.

    Plus sérieusement, PHP est un langage qui traînent des incohérences à tous les niveaux du fait notamment qu'il a connu une adoption massive alors que c'était un langage encore jeune et qu'il a misé sur la retro-compatibilité, ce qui fait qu'elles perdurent. Mais si tu regardes les autres langages (Python, Javascript, Ruby...), tu verras que ces valeurs qui t'étonnes sont belles et biens les valeurs renvoyées pour leurs fonctions ou méthodes équivalentes.

    et que donc 123 == 0
    Tu es possédé par Belzébuth, il te faut le secours des pères Merrin et Karras.
    Brachygobius xanthozonus
    Ctenobrycon Gymnocorymbus

  20. #20
    Expert confirmé Avatar de Séb.
    Profil pro
    Inscrit en
    mars 2005
    Messages
    3 344
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

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

    Informations forums :
    Inscription : mars 2005
    Messages : 3 344
    Points : 4 413
    Points
    4 413
    Par défaut
    Citation Envoyé par CosmoKnacki Voir le message
    Qui cherche une chaîne vide ?
    Toi au post #10.
    Voilà, permettre un comportement en tout point inutile qui retournera toujours un succès quelque soit le $haystack ne sert à rien, si ce n'est créer de la confusion et des bugs.
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

Discussions similaires

  1. [Article] Les nouveautés de Visual Studio 2010
    Par Philippe Vialatte dans le forum Visual Studio
    Réponses: 17
    Dernier message: 22/05/2010, 12h35
  2. [Article] Les nouveautés d'ASP.NET 4
    Par Philippe Vialatte dans le forum ASP.NET
    Réponses: 9
    Dernier message: 10/03/2010, 18h08
  3. [Article] Les nouveautés de Visual Studio 2010
    Par Philippe Vialatte dans le forum VB.NET
    Réponses: 1
    Dernier message: 09/11/2009, 19h55
  4. [Article] Les nouveautés de Visual Studio 2010
    Par Philippe Vialatte dans le forum Général Dotnet
    Réponses: 0
    Dernier message: 04/11/2009, 16h42
  5. [Article] Les nouveautés de Visual Studio 2010
    Par Philippe Vialatte dans le forum Débuter
    Réponses: 0
    Dernier message: 04/11/2009, 16h42

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