所以我有肥皂连接到一些服务。我正在创建的应用程序是完全面向对象的。因此,我发送的消息的数据在stdClass对象中是PHP(它由我的类扩展 - 在未来的xml文档中使用预先声明的公共$变量表示数据)。只要我必须创建像:
这样的文档,一切都很好<Request>
<paramsList>
<someParam></someParam>
<someParam></someParam>
<someParam></someParam>
<someParam></someParam>
</paramsList>
<moreData></moreData>
</Request>
现在的问题是创建如下结构:
<Request>
<paramsList>
<someParam id="3"></someParam>
<someParam id="4"></someParam>
<someParam id="18"></someParam>
<someParam id="512"></someParam>
</paramsList>
<moreData isImportant="false"></moreData>
</Request>
是否有可能(以及 - 如何?)将这些内容添加到stdObject中,因此我不必从这个简单的表单中更改SOAP函数的执行:
$client->functionToExecute($stdObjectOrientedData);
示例对象和用法:
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 :(得分:0)
如果有人访问此问题,可以回答这个问题。
如果正确创建了WSDL文件,PHP将使用普通的StdClass对象生成响应。只需命名属性,因为它们在请求中命名。
如果WSDL有错误,那么你唯一能做的就是从模板中手动发出请求。