@topuserman

Builder: нужна ли фабрика, или можно в билдере оставить метод?

У меня есть некий класс Logger, который достаточно сложно инстанцировать, чтобы упростить работу,
я создал обычный билдер, который помогает быстро конфигурировать и создавать объект логгера.

Но в приложении достаточно часто где может встречаться один и тот же код билдера.

Например:

$logger_builder = new LoggerBuilder('logger_name');
$logger = $logger_builder->setLogLevel(Logger::ERROR)->setChannel(Logger::DEFAUL_CHANNEL)->setFormat('...');
Чтобы каждый раз эту лапу не писать, хочу этот код обернуть в метод и его уже использовать.
Куда лучше с точки зрения структуры положить этот метод?
Нужно ли создавать отдельную фабрику (мне кажется это лишнее.. ?)?
Или можно положить в сам билдер (мне кажется это не его зона ответственности)?
  • Вопрос задан
  • 82 просмотра
Пригласить эксперта
Ответы на вопрос 1
glaphire
@glaphire Куратор тега PHP
PHP developer
1) создать класс-обертку для этого логгера, сконфигурировать его внутри (в методе init, метод init засунуть в конструктор)
2) изучить реализацию service container в текущем фреймворке/приложении и передавать уже сконфигурированный логгер через dependency injection в нужные классы
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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