Я впервые пытаюсь использовать контейнер внедрения зависимостей в проекте, но я только что обнаружил проблему, которую не знаю, как ее решить.
В проекте предусмотрен веб-сервис SOAP, который реализован поверх SOAP-компонента Zend Framework.Это работает так, что вы определяете класс, который действует как ваш сервис, вы создаете класс Zend_Soap_AutoDiscover или Zend_Soap_Server (для WSDL или самого класса, в зависимости от ситуации), и, наконец, вы передаете ZF имя класса сервиса черезконструктор или через метод setClass.Например:
class MyService {}
$autodiscoveryObj = new Zend_Soap_AutoDiscover();
$autodiscoveryObj->setClass('MyService');
...
Проблема с этим последним шагом.Мой DI-контейнер может создать сервисный объект и внедрить в него все необходимые зависимости.Это нормально, если мне нужен экземпляр в моем собственном коде.Тем не менее, b / c вы просто передаете имя класса в ZF, и вы не можете на самом деле создать его экземпляр самостоятельно, он не будет должным образом создан в контейнере, поэтому его зависимости никогда не вводятся.Кроме того, я не думаю, что смогу использовать какой-либо класс-обертку, поскольку ZF использует отражение в классе.
Какой лучший способ справиться с этим?