Bonjour à tous,

Alors, c'est une question plutôt généraliste, mais qui va tourner sur PHP5 et le web en général. Donc j'le poste là.

Comment sait-on quand on doit faire de quelque chose un "objet" ?

Par exemple, je programme un jeu depuis 2ans.
Au départ, je faisais dans le purement procédural... j'en suis venu à la POO.

Pour mon jeu, par exemple, j'ai une classe pour la gestion des personnages, une classe pour la gestion des "joueurs", une classe pour ma gestion de bdd, une classe pour la messagerie, les news, les sorts magiques....

Mais j'me dis que c'est pas "optimal"
- est-ce que j'ai fais des classes pour des choses qui ne devraient pas l'être
- est ce que j'aurais pas fait des classes trop grosses (certaine dépassent les 1500 lignes)

Alors, j'voulais savoir comment vous vous déterminez quand quelque chose doit être un "objet".

Par exemple, pour l'inscription au jeu :
Devrais-je avoir une classe "comptejoueur" avec des méthodes genre
->AjouterCompte()
->SupprimerCompte

ou alors, est-ce que vous appelez votre classe de gestion SQL qui fait dans le script d'inscription la requête "INSERT..." ?

J'ai l'impression que j'ne fais pas encore de l'objet à 100%.... et j'ai beau lire des cours, voir des codes, j'me dis "est-ce que j'suis vraiment dans l'truc, ou à l'ouest"?

Alors par exemple, voici mon script d'inscription (j'vous mets pas les classes... appelés, ça serait vraiment trop long). Que pourrait-on y faire ?

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
 
<?php
/*
Fichier : inscription.php
Date : 04/06/2007 00:01:36
Description :
  - fichier d'inscription
----------

*/
 
/******************************************************/
/***** Anti-hacking / Insclusion / Instanciations *****/
/******************************************************/
 
define('INC_OK',true); 
 
//les inclusions
require("libs/template.class.php");
require("libs/drsql.class.php");
require("libs/Joueur.class.php");
require("libs/config.inc.php");
 
//instanciation des objets
$TPL = new template();
$DB = new DrSql($host,$user,$pass,$bdd);
$Joueur = new Joueur($DB,$TPL);
 
/*************************/
/***** les variables *****/
/*************************/
 
$message_error = NULL;
$Affichage = false;
$titrePage = 'Page d\'Inscription sur le jeu Pen Arvin';
 
/*****************/
/***** DEBUT *****/
/*****************/
 
/*******************************/
/***** actions de sessions *****/
/*******************************/
 
$Joueur->EtrePageSecurisee(false);
 
//j'assigne le nom de la page
$TPL->assign('titrePage',$titrePage);
//j'assigne mon footer
$TPL->assign('version',$version);
 
/***************************/
/***** Traitement POST *****/
/***************************/
 
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
  extract($_POST);
  if (isset($mail) && isset($pwd) && isset($c_pwd))
  {
    if (!empty($mail) && !empty($pwd) && !empty($c_pwd))
    {
      $form = true;
 
      if ($pwd != $c_pwd)
      {
        $message_error .= 'Vos mots de passes ne sont pas les mêmes<br />';   
        $form = false;
    }
 
    if ($form == true)
    {
      if ($Joueur->EtreMailValide($mail))
        $form=true;
      else
      {
      $form = false;
      $message_error .= 'cette adresse mail n\'est valide.<br />';
      }
    }
 
    if ($form == true)
    {
      //compte existant ?
      $Requete = $DB->query("SELECT * FROM CompteJoueur WHERE CJ_Mail='{$mail}'");
      if($Requete->num_rows <= 0 )
      {
        //non : insertion
        $DB->query("INSERT INTO CompteJoueur VALUES ('','{$mail}','".md5($pwd)."','0','".$Joueur->DonnerIp()."')");
 
        //envoi d'un email             
        $from_email = "rwkpocketjedi@hotmail.com";   
        $entetedate = date("D, j M Y H:i:s -0600"); // avec offset horaire   
        $entetemail = "From: $from_email \n"; // Adresse expéditeur  
        $entetemail .= "Cc: \n";  
        $entetemail .= "Bcc: \n"; // Copies cachées   
        $entetemail .= "Reply-To: $from_email \n"; // Adresse de retour   
        $entetemail .= "X-Mailer: PHP/" . phpversion() . "\n" ;
        $entetemail .= "Date: $entetedate"; 
 
        $texte ='Bonjour, vous venez de vous enregistrer sur Pen Arvin avec l\'adresse e-mail suivante '.$mail.'
                 Veuillez confirmer votre inscription en cliquant sur le lien suivant :
                 '.$adresseSite.'valid.php

                 Ne répondez pas à cet e-mail.
                 Bon jeu.
                 ';
 
        if($mailEnvoi)
          mail(
            $mail,
            'Insciption sur Pen Arvin',
            $texte,
            $entetemail
          );
        else
          $contenu .=  '<p>Pour valider votre compte, <a href="valid.php">CLIQUEZ ICI</a></p>';
 
        $contenu .= '<p>Votre inscription est un succès.</p>';
 
        //assignation
        $TPL->assign(
                array(
                  'form' => true,
                  'message_error' => NULL,
                  'mail' => NULL,
                  'contenu' => $contenu
                )
        );
 
        //affichage page
        $TPL->parse('inscription.tpl');
 
      }
      else
      {//oui : compte existant
          $message_error .= 'Ce compte existe déjà. Veuillez utiliser une autre adresse mail<br />';
          $form = false;
      }
    }
  }
  else
  {
    $message_error .= 'Veuillez remplir tous les champs<br />';
    $form = false;
  }
}
}
 
/*********************************/
/***** Gestion post/pré POST *****/
/*********************************/
 
if ($Affichage == false)
{
  if(empty($message_error))
  {
    //page invoquée pour la 1ere fois 
    $TPL->assign(
            array(
              'form' => false,
              'message_error' => NULL,
              'mail' => NULL,
              'contenu' => NULL
            )
    );
  }
  else
  {
    //page invoquée suite a une erreur
    $TPL->assign(
            array(
              'form' => false,
              'message_error' => $message_error,
              'mail' => $mail,
              'contenu' => NULL
            )
    );
  }
  //affichage
  $TPL->parse('inscription.tpl');
}
 
/***************/
/***** FIN *****/
/***************/
?>