制作OOP论坛

时间:2010-11-11 17:01:41

标签: php oop forum

我已经学会了OOP的基础知识,虽然我应该尝试做一些简单的事情,(只是为了学习,因为我很无聊)。问题是我无法确定我将需要哪些课程。数据库抽象和(用户输入)验证几乎可以解决问题。它将使用PHP,但我认为在OOP中设计的所有论坛都有一组共同的类。

论坛将非常简单,注册,登录,查看,发布和回复。 我在想下面列表中的内容:

  • 注册课程
  • 用户类:管理用户的类
  • User_Post类:管理用户帖子的类
  • 帖子课程:管理帖子
  • 验证类(PHP过滤器?)

对我而言,对于像我这样的菜鸟来说,分层线程似乎非常复杂。 我喜欢的一个非常简单的论坛是BBCs 606论坛。

也许openID用于验证?

这就是我到目前为止所做的一切。

3 个答案:

答案 0 :(得分:0)

如果你“认为所有在OOP中设计的论坛都有一套共同的课程”,为什么不对现有软件进行一些手术呢? (那里有很多开源论坛软件。)这样你就可以了解一套通用的课程,它们如何工作,互动以及构建更大软件的整个过程。 / p>

我的猜测是,拥有这些知识,你将更好地建立自己的论坛,而不是任何答案(或者更确切地说:意见),你应该使用或需要什么类。

答案 1 :(得分:0)

对于登录我不建议使用openID I thik如果你使用像this这样的东西,你会更“成为过程的一部分”。

这很简单,在我看来会更符合 PHP 论坛。

我还要看一些参考是一些好的“简单”的php论坛,如PunBB

祝你好运!

答案 2 :(得分:0)

如果您正确抽象,您将意识到OO和Active Record的好处。然后你就可以在没有发出声音的情况下走在宣纸上。

设计表,然后为每个表构建一个类。严格使用名词和动词。

例如:

 users
     id
     username
     password

  forums
     id
     name

   posts
      id
      user_id
      body

   forum_posts
       id
       forum_id
       post_id

这里有3节课:

  • 用户
  • 论坛

通过在适当的类中使用静态方法,您可以智能地构建它:

    $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); }

像这样继续。想想非常小的东西,每件事都会聚集在一起。为每个类提供字段列表,__ call,get(),set()和工厂方法以获取相关类

tl; dr抽象和设计表,使用短工厂方法编写重载类以进行选择和插入。