Я начинаю кодировать свой проект, и в прошлом незавершенном проекте я использовал два разных шаблона для управления дизайном пользовательского класса, который должен будет управлять следующими вещами:
- Создание пользователя
- Изменения для пользователя
- Удаление пользователя
- Чтение пользовательских данных
Несмотря на это, мы также должны учитывать, что этот класс пользователя будет расширен классом сеанса, который просто установит сфокусированный идентификатор пользователя в качестве идентификатора, предоставленного пользователем, просматривающим страницы.
У нас также будет этот класс users
, который будет управлять группами пользователей.
Я использовал следующие 2 варианта (упрощенно):
Разного класса для различного назначения
- class UserMaker($username, $password, $email);
function giveBirth(); // create the user
- class UserManager($id);
function edit($field, $value); // edit a specific user field
function save(); // save all the edits with a single query
function setTrusted(); // set that user as trusted
function setAdmin(); // set that user as admin
function setBanned(); // ban the specific user
- class UserReader($id);
function get($field); // Get the value of a single field
function getAll(); // Get all fields from that user as associative array
function isAdmin(); // self explanation
function isRegistered(); // self explanation
function isBanned(); // self explanation
Одноместный класс
- class User($id);
function static giveBirth($username, $password, $email); // create the user, notice this is static
function edit($field, $value); // edit a specific user field
function save(); // save all the edits with a single query
function setTrusted(); // set that user as trusted
function setAdmin(); // set that user as admin
function setBanned(); // ban the specific user
function get($field); // Get the value of a single field
function getAll(); // Get all fields from that user as associative array
function isAdmin(); // self explanation
function isRegistered(); // self explanation
function isBanned(); // self explanation
По сути, поскольку единственный класс, который не принимает $ id в качестве аргумента для __construct()
, это UserMaker, мы просто устанавливаем функцию giveBirth()
как статическую, чтобы мы могли создать пользователя.
Каков наилучший способ создать этот шаблон? У вас есть третий вариант, который вы чувствуете себя лучше, чем эти?