Применение ООП в небольшом проекте с открытым исходным кодом - PullRequest
3 голосов
/ 17 апреля 2011

Итак, мое текущее понимание классов: Синглтон для класса, который будет создан только один раз. Статика для класса, который не создается, а просто существует. Регулярное? Для класса, который может быть создан снова и снова.

Итак, я делаю небольшой проект с открытым исходным кодом, а что касается работы с пользователями, я подумал, как мне с этим справиться, например: Создание пользователя - я мог бы создать экземпляр объекта users и затем вызвать метод create для него. Или я мог бы иметь синглтон, чтобы объект user всегда существовал и вызывал create?

Я просто думаю, что создание какого-либо объекта для каждого действия, связанного с пользователем, например, обновление учетных данных пользователя, кажется довольно неряшливым. Могу ли я создать экземпляр другого объекта пользователя и затем вызвать метод update для него?

Просто запутался в том, как на самом деле применить ООП, и лучший способ сделать это.

Спасибо за любую помощь, которую вы, ребята, можете предоставить.

1 Ответ

2 голосов
/ 17 апреля 2011

Даже если это небольшой проект, я бы порекомендовал взглянуть на доступные PHP-фреймворки. CodeIgniter оставляет небольшой след и обеспечивает быстрое развертывание.

В этом случае, если мы исключим возможное использование фреймворков, я бы выбрал класс User, который будет выглядеть примерно так:

class User{
    private $user = array();

    public function __construct($user_id = 0){
        if($user_id !== 0){
            $this->user = $this->get($user_id);
        }
    }

    public function get($user_id){
        // .. code
    }

    public function update($data, $user_id = 0){
        if($user_id == 0){
            $user_id = $this->user['user_id'];
        }

        // .. code
    }

    public function create($data){
        // .. code
    }

    public function delete($user_id){
        // .. code
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...