Может ли DI контейнер внедрять в конструктор классы, не объявленные в контейнере? Допустимclass Expample { function __construct(Responser $responser) {} } $di = new DI(); $di->set('expample', 'Example'); Класс Responser не зарегистрирован в контейнере. Имеет ли право Di искать Responser за пределами себя и при успешном нахождении внедрять его в конструктор? Или он должен искать Responser только внутри себя, в случае отсутствия кидать исключение?
DI контейнер может внедрять классы, которые не были объявлены в самом контейнере. В вашем примере, если Responser класс не зарегистрирован в DI контейнере, DI контейнер может поискать Responser класс в других доступных местах, например, в автозагружаемых файлах или в стандартных папках приложения.
Однако, если Responser класс не может быть найден, DI контейнер должен предпринять действия, заданные вашей логикой обработки таких ситуаций. Например, он может кинуть исключение или использовать альтернативное значение по умолчанию.
В общем, DI контейнер может использовать внешние классы для внедрения зависимостей, но должен быть предусмотрен обработчик для случаев, когда требуемый класс не может быть найден.
DI контейнер может внедрять классы, которые не были объявлены в самом контейнере. В вашем примере, если Responser класс не зарегистрирован в DI контейнере, DI контейнер может поискать Responser класс в других доступных местах, например, в автозагружаемых файлах или в стандартных папках приложения.
Однако, если Responser класс не может быть найден, DI контейнер должен предпринять действия, заданные вашей логикой обработки таких ситуаций. Например, он может кинуть исключение или использовать альтернативное значение по умолчанию.
В общем, DI контейнер может использовать внешние классы для внедрения зависимостей, но должен быть предусмотрен обработчик для случаев, когда требуемый класс не может быть найден.