Правильная архитектура кода на примере класса 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(){/*Смена пароля*/}
}
Причин на это несколько:
- Я переписываю процедурный код, там получаемые данные идут в виде массива. Метод getUser в данный момент как раз и возвращает данные о пользователе в виде массива.
- Попросту нет причин создавать объект класса User только ради того, чтобы передать данные в условный метод register, который добавит запись в БД и поставит cookies.
И у меня опасение, что позже это может плохо обернуться. Возможно я нарушаю 1 из принципов ООП - инкапсуляцию. Я так понимаю, лучше все же делать получение данных о пользователе в виде объекта через метод __construct, а остальные методы оставить статическими? В общем нужны советы по правильной архитектуре кода.