2012-12-05 5 views
0

Je suis tout à fait confus au sujet de ce sujet, disons que j'ai une classe d'authentification (connexion, déconnexion, vérifier si connecté ou non)la structure des classes

Une classe d'utilisateur (qui détient un utilisateur, getters, setters , enregistrer, etc)

Où dois-je mettre des choses comme la création d'un utilisateur, et comme la validation d'un nom d'utilisateur? Une nouvelle classe, comme "UserManager" ou quelque chose?

Répondre

5

Il s'agit davantage d'une question de conception, ce qui rend la réponse un peu difficile car il n'y a probablement pas de manière objective de le faire. Au contraire, plusieurs personnes ont créé plusieurs solutions différentes qui fonctionnent toutes aussi bien.

Une suggestion serait de créer un Users (pluriel) classe qui a des méthodes publiques comme addNew (objet retourne User) et userExists (retours Bool), ainsi que validateUsername (également le retour Bool).

Cette classe Users peut contenir une logique supplémentaire utilisée pour gérer votre base d'utilisateurs dans son ensemble.

0

Ce que je veux faire est d'inclure les créer/validate/etc .. méthodes dans la classe utilisateur

class user{ 
     function __construct($iduser){ 
      $this->id=$iduser; 


     } 

     function getHref(){ 
     return "/profile/".$this->id; 
     } 


     function create($username){ 
      //insert your user in db 
      //retrieve the id of the created user 
      $iduser=mysql_insert_id(); 

      $newuser=new user($iduser); 
      return $newuser; 
     } 

     function validate($username){ 

      mysql_query("your code to validate"); 

      return true or false; 
     } 
} 

$name="john"; 
if(user::validate("$name")){ 
    $mynewuser=user::create("john"); 

    $href=$mynewuser->getHref(); 
    header("Location: $href"); //let s redirect him to its home page 
    //or use any other method... 
} 
+0

Eh bien, je suppose que ma solution est très semblables « Jonathan Sampson » un. sauf que j'étais plus bavard – myriacl

Questions connexes