Есть у меня такой объект - Loginner. Он используется контроллером - тот передаёт ему response, request, logger и настройки модуля пользователей, после чего тягает методы Logiiner::logIn, Loginner::logOut, ::remember и проч.
В настройках модуля содержатся сообщения об ошибках, лимите попыток логина, и проч. Request предоставляет необходимые данные - ip, user_agent. Эта данные потом используются в методах Loginner.
Вопрос: мне создавать под каждое такое значение свойство в Loginner и записывать в него данные из переданных настроек модуля и Request прямо в конструкторе, или же лучше записать Request и настройки модуля в свойства, а уже из них тягать значения в методах?
Никак не могу определиться, уже второй раз перелопачиваю код класса. В первом случае вроде как методы получаются более абстрагированными от логики файла конфигурации и окружения:
$this->limit_reached_message
вместо
$this->module_settings->login_limit_reached_message
,
$this->ip
вместо
$this->request->getServer('REMOTE_ADDR'))
,
то есть такие зависимости выносятся в конструктор, но при этом конструктор получается огромнейшим, и количество свойств объекта - тоже очень большое.
Так какой подход лучше использовать?