аргументы метода то, что ему нужно для работы
Твой DI чтоли не создает новый контроллер каждый раз?
тогда придется делать dd->isBot($request->userAgent()->__toString()) || dd->isMobile($request->getUserAgent()->__toString) а если еще и кеширование необходимо, тогда каждому методу это нужно передавать, по сути получаем статические методы
если нужно кешировать, то кеш - это зависимость детектора и идет ему в конструктор. Итого у тебя один инстанс сервиса, с методами isBot($agent) \ isMobile($agent) или с одним методом detect($agent): DetectionResult DetectionResult::isBot() \ DetectionResult::isMobile();
все зависит от применения библиотеки, если у вас либа предназначается для запуска на один юзерагент - то проще делать isBot() а если в цикле на детект разных то isBot($userAgent)
прикол в том, что isBot($agent) можно юзать и с одним агентом и в цикле без особой разницы
ага, только каждый раз нужно пробрасывать ему юзер агента отдельно, а если юзать это дело где-то внутри глубоко, то туда придется дополнительно пробрасывать юзерагента, а не просто либу
сделай простую структурку с результатом, задекти девайс на входе в приложение и дальше прокидывай результат, а не либку
можно и так. я лично не вижу большой проблемы в самой либе, она заточена под детект одного юзер агента, вам надо в цикле без создания нового обьекта ? форкните и потом сделайте пул риквест
Обсуждают сегодня