Заменить работу инжектора зависимости на конкретном классе фабрикой

В настоящее время я работаю над примером PHP и в качестве инжектора зависимостей я использую Auryn.

У меня есть следующий класс, который представляет конкретный вариант использования вызова API (например, получить всех пользователей из базы данных, получить книги или недействительный запрос API). Этот класс зависит от ResponseMessageFactory что строит ответ JSON.

class NotValidApiCallUseCase implements Command{

private $responseMessageFactory;

public function __construct(ResponseMessageFactory $responseMessageFactory){
$this->responseMessageFactory = $responseMessageFactory;
}

public function execute(){
...stuff...
}

}

Поскольку у меня есть много возможных вариантов использования для разрешения, когда я выполняю вызов API, мой класс отвечает за направление текущего URL-адреса на конкретный вариант использования, использует фабрику для создания конкретного варианта использования.

class UseCaseFactory{

public function __construct(ResponseMessageFactory $responseMessageFactory){
$this->responseMessageFactory = $responseMessageFactory;
}

public function build($type){
if($type == "INVALID_API_CALL"){
return new NotValidApiCallUseCase($this->responseMessageFactory);
}

... other if ...
}

}

Тем не менее, когда мне нужно создать экземпляр варианта использования, как я уже писал ранее, NotValidApiCallUseCaseЯ должен дать ему все зависимости, поэтому я нарушаю работу моего инжектора зависимостей.

Это плохая идея? Не следую ли я основной цели инжектора? Как бы я решил это?

2

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]