2011-11-18 100 views
1

我想在項目中第一次使用依賴注入容器,但我剛發現一個問題,我不知道如何解決。如何使用Zend_Soap_AutoDiscover依賴注入

該項目提供了一個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容器可以創建一個服務對象並注入所有必需的依賴關係。這很好,如果我需要我自己的代碼中的實例。但是,只需將類的名稱傳遞給ZF即可,並且您不必親自實例化它,也不會通過容器正確實例化,因此它的依賴關係從不會被注入。此外,我不認爲我可以使用任何類型的包裝類,因爲ZF在類中使用反射。

處理這個問題的最佳方法是什麼?

回答

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)