В каком методе определять данные юзера?

Итак, есть класс UserOperator, который в числе прочего отвечает за выполнение юзером входа. В нём есть такие методы:

1) getUser() - получение юзера из БД по логину/паролю. Если логин/пароль по данным БД не совпали, этот метод дергает другой метод:
2) writeFailedAttempt() - метод записи неудачной попытки входа (в БД конечно же), который должен записать введенный логин, юзерагент и IP.
Также имеются:
3) метод getRealIP возвращает IP посетителя.
4) метод getUserAgent возвращает юзерагент посетителя.

Что меня озадачило: есть несколько вариантов:
1. Определять ip и useragent в методе getUser(), то есть дергать сразу writeFailedAttempt($login, $this->getRealiP(), $this->getUserAgent()) .
2. Определять ip и юзерагент уже внутри метода writeFailedAttempt().
3. Определять всё это еще в конструкторе класса, перенеся туда тела методов getUserAgent() и getRealIp() и записывая значения в соответствующие свойства объекта.
4. Присваивать значения свойствам также в конструкторе, но делать это с помощью соответствующих методов (не переносить тела методов в конструктор).

Просто не знаю, какому принципу здесь надо следовать, и потому не могу определить, какой вариант самый правильный.
  • Вопрос задан
  • 183 просмотра
Пригласить эксперта
Ответы на вопрос 1
FanatPHP
@FanatPHP
Чебуратор тега РНР
Задача решается сильно проще чем ты думаешь.

Во-первых, тебе не нужно определять юзерагент - он никаким боком не нужен для writeFailedAttempt.
Тебе не нужен никакой "RealIp". Если ты хочешь записать IP адрес клиента, то ты должен писать в обязательном порядке только $_SERVER['REMOTE_ADDR'] и ничего больше.
А чтобы обратиться к глобальной переменной никакая функция не нужна.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы