2014-01-29 5 views
0

그래서 일부 서비스에는 비누 연결이 있습니다. 내가 만들고있는 App은 완전히 객체 지향적입니다. 그러므로 보내는 메시지의 데이터는 stdClass 객체의 PHP에 있습니다.이 클래스는 미리 정의 된 public $ 변수가있는 XML 클래스 문서에서 확장됩니다. (? - 어떻게하는 경우)이 일을 추가하려면stdClass 객체에서 PHP SOAP 메시지 생성

<Request> 
<paramsList> 
<someParam id="3"></someParam> 
<someParam id="4"></someParam> 
<someParam id="18"></someParam> 
<someParam id="512"></someParam> 
</paramsList> 
<moreData isImportant="false"></moreData> 
</Request> 

그것이 가능 :

<Request> 
<paramsList> 
<someParam></someParam> 
<someParam></someParam> 
<someParam></someParam> 
<someParam></someParam> 
</paramsList> 
<moreData></moreData> 
</Request> 

이제 문제는 같은 구조를 만드는 것입니다 : 모든만큼 내가 좋아하는 문서를 만들 필요로 괜찮습니다

$client->functionToExecute($stdObjectOrientedData); 

예 개체 및 사용 :

stdObject에 나는이 단순한 형태에서 SOAP 기능의 실행을 변경할 필요가 없습니다
class Request extends \stdClass 
{ 
    public $paramsList; 
    public $moreData; 
} 

$objectToSend = new \stdObject(); 
$request = new Request(); 
$request->paramsList = $someParamsObjectsArray; 
$request->moreData = $someData; 
$objectToSend->Request = $request; 

$client->functionToExecute($objectToSend); 

답변

0

누군가이 질문을 방문하는 경우 여기에 답이 있습니다.

WSDL 파일이 제대로 생성되면 PHP는 표준 StdClass 객체를 사용하여 응답을 생성합니다. 요청에 이름이 지정된대로 속성의 이름을 지정하면됩니다.

WSDL에 오류가있는 경우 템플릿으로 요청을 수동으로 처리하는 것만 가능합니다.