1

我第一次尝试在项目中使用依赖注入容器,但我刚刚发现了一个我不知道如何解决的问题。

该项目提供了一个 SOAP Web 服务,它是在 Zend Framework 的 SOAP 组件之上实现的。其工作方式是定义一个充当服务的类,创建 Zend_Soap_AutoDiscover 或 Zend_Soap_Server 类(适用于 WSDL 或类本身),最后,通过 ZF 传递服务类的名称构造函数或通过 setClass 方法。例如:

class MyService {}

$autodiscoveryObj = new Zend_Soap_AutoDiscover();
$autodiscoveryObj->setClass('MyService');
...

问题在于最后一步。我的 DI 容器可以创建一个服务对象并将所有必需的依赖项注入其中。如果我在自己的代码中需要一个实例,那很好。但是,b/c 您只是将类的名称传递给 ZF,而您自己并没有实际实例化它,它没有通过容器正确实例化,因此它的依赖项永远不会被注入。此外,我认为我不能使用任何类型的包装类,因为 ZF 在类上使用反射。

处理这个问题的最佳方法是什么?

4

1 回答 1

0

在 Zend_Soap_Server 中,您可以像在 SoapServer 中一样附加/设置对象

/**
 * Attach an object to a server
 *
 * Accepts an instanciated object to use when handling requests.
 *
 * @param object $object
 * @return Zend_Soap_Server
 */
public function setObject($object)
于 2011-11-19T14:05:48.727 回答