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] Comment l'utiliser convenablement.


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé

    Profil pro
    Inscrit en
    Mai 2002
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 116
    Par défaut [POO] Comment l'utiliser convenablement.
    Bonjour,

    Je fais beaucoup d'objet quand je programme sauf en PHP, et j'ai donc envie de m'y mettre. Seulement, pour le moment je ne trouve pas ca très pratiquement (surtout au niveau de la durée de vie des objets) mais je m'y prend peut être mal donc je m'explique.

    Prenons le cas simple de l'organisation d'un tournois.

    Dessin pourri pour illustrer :


    c'est peut être surper mal modélisé mais c'est pas le problème c'est juste pour expliquer, ca économise des mots.



    Techniquement en php... le mieux est de faire un fichier genre

    librairie.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
      class Tournois {
        var $Lieu;
        var $Nom;
        // Constructeur()
    blabla}
      }
     
      class Joueur{
        var $Nom;
        var $Prénom;
        // Constructeur()
    blabla}
      }
    et à chaque page php de mon site, je fait un include('librairie.php')

    ok ? jusqu'ici j'ai bon je pense.

    Ensuite, admettons que je créé une page qui gere les joueurs

    joueur.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $participant[0] = new joueur('Toto', 'bob')
    $participant[0] = new joueur('henri', 'zidane')
    $participant[0] = new joueur('stella', 'artois')
    $participant[0] = new joueur('némare', 'jean')
    et pareil pour les tournois...

    mais une fois que je quitte ma page joueur.php, par exemple pour aller sur tournois.php qui affiche tous les tournois et les joueurs qui y participent.

    sachant que la durée de vie des objets est la meme que celle du script en cours, il faut donc que je sérialise tous les joueurs un par un (sans savoir combien il y en a) et que je les passe en querystring ?........ et ainsi de suite pour que je conserve tous les objets que j'ai créé

    ca me parrait super pas pratique.

    est ce que je m'y prend super mal ? peut-on m'aider dans mon raisonnement ?

    merci d'avance

  2. #2
    Membre Expert
    Inscrit en
    Juillet 2004
    Messages
    1 027
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 027
    Par défaut
    Sert toi plutot d'une base de donnée. Et ensuite il faut que tu recrées tes objets à chaque script, en fonction du besoin bien sur.

  3. #3
    Membre confirmé

    Profil pro
    Inscrit en
    Mai 2002
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 116
    Par défaut
    oui dans ce cas biensur, mais c'etait juste pour illustrer.
    c'est l'idée générale, est ce que c'est comme ca que l'on fonctionne ?

  4. #4
    Membre Expert
    Avatar de ska_root
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    1 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 203
    Par défaut
    Salut,

    oui, c'est le principe, légérement simplifié mais c'est ça...

    il ne faut regarder l'utilisation des classes PHP que pour la méthodologie obtenue, on n'est pas dans un conteneur de serveur d'application, donc la persistance des objets instanciés est limité à l'execution du script, a moins bien sûr, que tu ne joues avec la serialisation et les sessions.
    Cependant depuis php5, on a des choses nouvelles trés utiles comme la gestion des exceptions ou les librairies pré-implémentées telle que PDO (couche d'abstraction d'accés aux données) ou encore SPL (StandardPHPLibrary)

    un peu de doc sur l'objet dans PHP4 :
    http://hachesse.developpez.com/objetphp/


  5. #5
    Membre confirmé

    Profil pro
    Inscrit en
    Mai 2002
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 116
    Par défaut
    ok merci, je suis plus eclairé, il faut vraiment se servir de la POO pour une structure et non comme conteneur de données.

  6. #6
    Membre éprouvé
    Inscrit en
    Janvier 2006
    Messages
    140
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 140
    Par défaut
    exactement. C'est plus une méthode de programmation qu'un conteneur

Discussions similaires

  1. [POO] Comment utiliser la méthode isValid d'un DateField
    Par alicia1984 dans le forum Bibliothèques & Frameworks
    Réponses: 1
    Dernier message: 30/07/2008, 14h33
  2. [POO] Comment utiliser __autoload?
    Par paragoge dans le forum Langage
    Réponses: 2
    Dernier message: 14/03/2008, 16h47
  3. Comment bien utiliser ce forum ?
    Par Alcatîz dans le forum Pascal
    Réponses: 0
    Dernier message: 21/04/2004, 16h37
  4. [scrapbook] comment l'utiliser ?
    Par Didier 69 dans le forum Eclipse Java
    Réponses: 4
    Dernier message: 16/04/2004, 17h28
  5. [INDY] -> IdIdentServer comment l'utiliser ?
    Par MaTHieU_ dans le forum C++Builder
    Réponses: 9
    Dernier message: 06/08/2003, 16h00

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