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 :

De l'utilité des classes ?


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
    Février 2007
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2007
    Messages : 117
    Par défaut De l'utilité des classes ?
    Bonjour,

    J'explique mon cas ... Pour gagner du temps sur le moyen / long terme, j'ai envie de mettre en place un système qui me permettrait de "rapidifier" la création de formulaire.

    Je voulais m'orienter vers la POO. Voici un cas très simple :

    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 form {
      var $name
      var $action
      var $method
     
      function openForm($name, $action, $method) {
        echo "<form name=\"$name\" method=/"$method\" action=\"$action\">";
      }
     
      function closeForm() {
        echo "</form>";
      }
    }
    Quelle est l'utilité de faire cela alors que si je me limite à créer les fonctions, j'obtiendrai le même résultat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    function openForm($name, $action, $method) {
      echo "<form name=\"$name\" method=/"$method\" action=\"$action\">";
    }
     
    function closeForm() {
      echo "</form>";
    }
    Le but (quelle que soit la soluce choisie) étant que par la suite, je n'aurai qu'à taper le code ci-dessous pour que le système me crée un nouveau formulaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    openForm(nomduformulaire, envoi.php, POST);
    Et ceci pour qu'il le ferme :

    Votre avis ?

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2007
    Messages : 117
    Par défaut
    J'ajoute que mon post précédent est un exemple simpliste de ce que je veux faire ...

    Le but final serait de pouvoir créer des formulaires complets facilement, par un tel système ...

  3. #3
    Expert confirmé Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par défaut
    Dans ton cas très simple, aucun intérêt. Si tu ne vois pas d'intéret à utiliser une solution, pas la peine d'investir du temps dessus.

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    774
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2005
    Messages : 774
    Par défaut
    bêh pour ce que tu veux faire, il faut dire qu'il n'y a pas de différence a utiliser les classes ou les fonctions. Sinon il faut dire que la POO offre d'enormes avantages notamment l'encapsulation, la reutilisabilité, etc ...
    Si il te faut necessaire faire un choix, je te propose les classes

  5. #5
    Membre chevronné
    Avatar de genova
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 487
    Par défaut
    Pour ton exemple, l'utilité serait serait que tes fonctions sont facilements reconnaissables, ainsi tu aurais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $form = new form;
    $form->open('nomduformulaire', 'envoi.php', 'POST');
    $form->close();
    En lisant ton code tu sais déjà qui sert à quoi.

    La POO te permet aussi de jouer avec des constructeurs / destructeurs (PHP5), tu aurais donc tout simplement besoin de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    class form {
      function __construct($name, $action, $method) {
        echo "<form name=\"$name\" method=/"$method\" action=\"$action\">";
      }
     
      function __destruct() {
        echo "</form>";
      }
    }
    par conséquent simplement :
    $form = new Form;

    (__destruct() sera appelé à la fin de ton script. Si tu souhaites l'appeler avant, tu peux détruire l'objet simplement avec unset($form);)



    De plus admettons que demain toi ou un autre développeur souhaite ajouter des possibilité à cette classe sans chercher partout où ajouter quoi, il suffirait de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    class input extends form
    {
       function text($name, $value = '', $size = 30)
       {
          echo '<input type="text" name="' . $name . '" size="' . $size . '" value="' . $value . '" />';
       }
    }
    et ainsi tu pourrais faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $form = new input; // Ouverture du formulaire, avec l'appel du constructeur
    $form->input('toto');
    $form->input('titi');
    unset($form); // Fermeture du formulaire, appel du destructeur
    Testez le forum Fire Soft Board, un forum libre, gratuit et français.

    Système de template de phpBB - Lisez la FAQ PHP avant toute question si vous débuttez en PHP.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2007
    Messages : 117
    Par défaut
    Un grand merci pour cette grande explication ;-)

    Ma question avait bien entendu un sens "ironique", ne conaissant pas encore suffisament les classes.

    Je vois bien que ce système doit être utile mais pour reprendre ton dernier exemple, je pourrai tout aussi bien simplement créer une fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    function text($name, $value = '', $size = 30)
       {
          echo '<input type="text" name="' . $name . '" size="' . $size . '" value="' . $value . '" />';
       }
    et faire un appel à celle-ci via text(nomdemoninput);

    Ca donnerait tout de même le résultat voulu ... Et c'est la que je me demande si je dois me lancer dans la construction en classe ou simplement dans l'utilisation des fonctions ;-)

    Merci en tout cas pour ces éclaircissements !

Discussions similaires

  1. Utilité des classes abstraites en java 8
    Par Anubis dans le forum Général Java
    Réponses: 3
    Dernier message: 10/10/2014, 09h27
  2. Utilité des classes DAO générées avec Hibernate Tools
    Par marooned dans le forum Hibernate
    Réponses: 12
    Dernier message: 13/01/2013, 20h17
  3. utilité des classes, différence entre classe et fonction
    Par Papyllon dans le forum Général Python
    Réponses: 45
    Dernier message: 30/09/2010, 10h27
  4. L'utilité des classes statiques
    Par Blowdi dans le forum Débuter
    Réponses: 6
    Dernier message: 08/06/2009, 12h13
  5. [POO] [AVIS] L'utilité des classes
    Par Anduriel dans le forum Langage
    Réponses: 66
    Dernier message: 10/11/2005, 16h45

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