2010-11-11 5 views
0

J'ai appris les bases de la POO et je devrais essayer de faire quelque chose de simple (juste pour apprendre et parce que je m'ennuie). Le problème est que j'ai du mal à décider quelles classes je vais avoir besoin. L'abstraction de la base de données et la validation (entrée utilisateur) se règlent à peu près. Ce sera en PHP, mais je pense que tous les forums conçus dans OOP partagent un ensemble commun de classes.Créer un forum OOP

Le forum sera très simple, inscrivez-vous, connectez-vous, affichez, affichez et répondez. Je pensais quelque chose le long des lignes de la liste ci-dessous:

  • classe d'enregistrement
  • classe User: classe pour gérer les utilisateurs
  • classe User_Post: classe pour gérer les messages de l'utilisateur
  • messages classe: gérer les messages
  • classe de validation (filtres PHP?)

pour me threading hiérarchique semble incroyablement complexe programme pour un noob comme moi. Un forum vraiment simple que j'aime est le forum BBCs 606.

Peut-être que openID pour validation?

C'est tout ce que j'ai obtenu jusqu'ici.

+2

Y a-t-il une question ici? – tplaner

+0

Il veut savoir de quelles classes il a besoin pour construire un forum simple et s'il doit utiliser openID. Un peu large, mais ce sont ses questions. – webbiedave

+1

@webbie: Un * bit * large? Il veut quelqu'un pour concevoir et spec son projet pour lui ... – dmckee

Répondre

0

Si vous "pensez que tous les forums conçus dans la POO partagent un ensemble commun de classes", pourquoi ne pas opérer un logiciel existant?
De cette façon, vous découvrirez l'ensemble commun de classes, leur fonctionnement, leur interaction et le processus global de construction d'un plus grand logiciel. J'imagine qu'avec cette connaissance vous serez bien mieux de construire votre propre forum qu'avec n'importe quelle réponse (ou plutôt: opinion) sur les classes que vous devez utiliser ou dont vous avez besoin.

+0

+1 Bon point .. certains de ces forums sont tellement gonflés, je ne sais pas par où commencer. – jonnnnnnnnnie

+0

Même les logiciels gonflés ont peu de classes et de méthodes granulaires. Ou: Faites votre chemin :) ... commencez avec quelque chose de plus petit. Essayez d'abord un livre d'or, faites un blog ensuite, puis allez sur le forum. Après cet objectif plus élevé: portail, communauté ... le ciel est la limite :) – Select0r

+0

Lol, je viens de réaliser que je ne peux pas voteup – jonnnnnnnnnie

0

Pour la connexion je ne recommanderais pas openID je pense que vous seriez plus "une partie du processus" si vous travaillez avec quelque chose comme this.

C'est assez simple et sera plus en ligne avec un forum PHP à mon avis.

je prendrais aussi un regard une certaine référence est quelques bons forums php « simple » là-bas comme PunBB

Bonne chance!

+0

Merci! punbb est super – jonnnnnnnnnie

0

Si vous analysez correctement, vous réaliserez les avantages de OO et Active Record. Ensuite, vous pourrez marcher sur le papier de riz sans faire de bruit.

Créez des tables, puis créez une classe par table. Soyez strict avec nom (s) et verbe (s).

ex:

users 
    id 
    username 
    password 

    forums 
    id 
    name 

    posts 
     id 
     user_id 
     body 

    forum_posts 
     id 
     forum_id 
     post_id 

Il y a 3 classes ici:

  • utilisateur
  • Poster
  • Forum

En utilisant des méthodes statiques dans la classe appropriée, vous peut construire cela intelligemment:

$user->forum_posts('id DESC'); 
# function forum_posts($order_by) { return Forum::get_for_user($this->id, $order_by); } 

    $user->forum_post($forum_id, array('body' => 'Foo')); 
# function forum_post($forum_id, $array) { return Forum::post_to($forum_id, $this->id, $array); } 

continuer comme ça. penser à de très petites pièces et tout va se réunir. Donnez à chaque classe une liste de champs, __call, get(), set() et des méthodes d'usine pour obtenir des classes connexes

tl; dr abstraits et des tables de conception, écrire des classes surchargées avec des méthodes d'usine courtes pour les sélections et les insertions.