Правильная архитектура кода на примере класса User | Php

На стадии изучения ООП. Заметил у себя привычку делать почти все методы в классах статическими. На примере класса User:

class User
{
  public static function auth(){/*Авторизация*/}
  public static function register(){/*Регистрация*/}
  public static function getUser(){/*Получение массива данных пользователя*/}
  public static function exitUser(){/*Деавторизация*/}
  public static function editAvatar(){/*Смена аватара*/}
  public static function editPassword(){/*Смена пароля*/}
}

Причин на это несколько:

  1. Я переписываю процедурный код, там получаемые данные идут в виде массива. Метод getUser в данный момент как раз и возвращает данные о пользователе в виде массива.
  2. Попросту нет причин создавать объект класса User только ради того, чтобы передать данные в условный метод register, который добавит запись в БД и поставит cookies.

И у меня опасение, что позже это может плохо обернуться. Возможно я нарушаю 1 из принципов ООП - инкапсуляцию. Я так понимаю, лучше все же делать получение данных о пользователе в виде объекта через метод __construct, а остальные методы оставить статическими? В общем нужны советы по правильной архитектуре кода.


Ответы (0 шт):