За последние 24 часа нас посетили 9240 программистов и 461 робот. Сейчас ищет 91 программист ...

Какой паттерн выбрать с DI?

Тема в разделе "PHP для профи", создана пользователем davidtema, 10 сен 2020.

  1. davidtema

    davidtema Новичок

    С нами с:
    10 сен 2020
    Сообщения:
    3
    Симпатии:
    0
    Есть сервис из контейнера.
    В этом сервисе нужно сделать инстанс некоторого объекта (известен только интерфейс).
    Как в этом случае поступают?
     
  2. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    7.761
    Симпатии:
    1.508
    DI-контейнер. Во всех фреймворках есть. Есть и фреймворко-независимые. https://php-di.org/, например
     
  3. davidtema

    davidtema Новичок

    С нами с:
    10 сен 2020
    Сообщения:
    3
    Симпатии:
    0
    В моём случае, мне нужно не готовый объект получать, а создавать инстанс на месте в результате ответа API. Я бы хотел просто настраивать контейнер, указывая инстанс какого класса обработчик должен создавать в результате ответа API.
     
  4. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    7.761
    Симпатии:
    1.508
    А причём тут DI? Сделай фабрику, которая будет анализировать ответ апи и создавать нужный объект класса.
     
  5. davidtema

    davidtema Новичок

    С нами с:
    10 сен 2020
    Сообщения:
    3
    Симпатии:
    0
    Затем, что тип объекта нужно определять не в момент обработки ответа, а заранее на уровне контейнера. Конечно, можно в контейнере прописать нужную фабрику, которая будет создавать конкретный объект, но тип-то один. Но я ищу более солидное решение.
     
    #5 davidtema, 10 сен 2020
    Последнее редактирование: 10 сен 2020