将PHP SoapClient与本地WSDL文件(NON-URI)一起使用的任何解决方法?

jre*_*ebs 18 php soap wsdl

我有一个在CLI模式下运行的应用程序,它既不需要也不需要运行本地httpd.应用程序使用SOAP与Web服务提供程序进行传出交互.有问题的提供商存在一些可用性问题,我们正试图通过在他们的建议下在本地托管WSDL文件来减少问题的数量.

似乎SoapClient构造函数(在WSDL模式下)只能使用URI WSDL文件,但我试图找出解决此限制的一些方法,并让它以某种方式从本地文件系统读取WSDL文件.我很惊讶SoapClient构造函数没有传递文件名或文本字符串的选项,我之前可以简单地读取它.

有人有人建议如何避开这个限制并做我正在尝试的事情吗?

efr*_*eed 32

SoapClient()获取的URI不仅支持Web地址,还支持本地文件路径.但是相对路径在这里不起作用,所以它需要是完整的文件路径.

以下是如何使用相对引用加载本地WSDL文件.如果WSDL与当前PHP文件位于同一目录中:

new SoapClient(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'the.wsdl.xml');
Run Code Online (Sandbox Code Playgroud)

或者它是否在当前PHP文件的子文件夹中:

new SoapClient(dirname(__FILE__) . DIRECTORY_SEPARATOR. 'subfolder' . DIRECTORY_SEPARATOR . 'the.wsdl.xml');
Run Code Online (Sandbox Code Playgroud)

或者它是否在当前PHP文件的父文件夹中:

new SoapClient(dirname(dirname(__FILE__)) . DIRECTORY_SEPARATOR . 'the.wsdl.xml');
Run Code Online (Sandbox Code Playgroud)