PHP SoapClient __soapCall()

时间:2013-09-15 11:17:25

标签: php soap


我是这个PHP SOAP的新手。(SoapClient)
我很困惑何时使用_soapCall(); 以及何时使用我从获得的功能 _getFunctions();

来自__getFunctions()的回复 EstimationResponse
Estimation(Estimation $parameters)

什么是正确的?
$client->__soapCall("Estimation", $params);

$client->Estimation($parameters);
我已经尝试了两个,但没有结果或NULL 我什么时候可以使用什么? 感谢

2 个答案:

答案 0 :(得分:1)

没关系。

SoapClient提供了一个接口,它可以神奇地允许调用WSDL中的每个SOAP方法作为实例化客户端的方法。但是这种魔法在内部被映射到对__soapCall的调用。

答案 1 :(得分:0)

__soapCall的目的是为了更灵活地调用函数。由于魔术方法的参数和返回仅仅是SOAP服务本身定义的参数,因此它们不能包含用于PHP SOAP库本身的信息。

例如,在没有WSDL文件的情况下,您仍然可以创建一个SoapClient对象,但PHP将无法将“魔术”函数映射到相应的动词。 __soapCall包含一个options参数,允许您手动指定WSDL提供的详细信息。

“神奇”方法的另一个棘手问题是发送和接收“SOAP标头” - 带外信息,例如身份验证或会话详细信息。这些可以通过__soapCall的第4和第5个参数来处理。

简而言之,如果你能用神奇的方法做你需要的东西就可以使用它们;如果您发现自己遇到限制,请检查是否可以直接致电__soapCall