设计用户类 - oop php

时间:2014-01-15 12:24:15

标签: php oop

确定。我在我的应用程序中设计类。

我有一个User类。现在我需要列出用户,获取有关特定用户的信息等。

最初我试图做的是:

  class User
    {

    private $userId;
    private $name;
    private $age;

    function __construct()
    {
       // the code to get the user details from db and assign it to the properties.
    }

    // get the list of all the users
    public function getUserList()
    {
    }

    // add a new user
    public function addUser()
    {
    }

    // gets the username
    public function getUserName($userId)
    {
    return $this->name;
    }


} 

这些是我的怀疑:

  1. 您认为从数据库中填充属性是一个好主意 构造函数?如果没有,你能建议一个更好的方法吗?

  2. 函数getUserList()和addUser()是否真的属于这个类?或者我应该创建一个单独的类来获取用户列表,添加,删除用户,然后创建另一个类来存储特定用户的信息?我该如何设计呢?

  3. 由于

1 个答案:

答案 0 :(得分:1)

我认为更好的选择是创建两个类,用户和用户。

class Users implements IteratorAggregate {
    /**
     * @return User[]
     */
    public function getUserList() {}

    public function addUser(User $user) {}

    /**
     * @return User
     */
    public function getUser($userId) {}

    public function getIterator() {
        return new ArrayIterator($this->getUserList());
    }
}

class User {
     public $userId;
     public $name;

     public function __construct() {}
}