我有一个由WCF生成的WSDL,现在应该使用这个WSDL来创建一个PHP web服务。我的WSDL包含到自定义.NET类(complexType)的映射,我需要一个PHP工具来生成等价的PHP类以及存根代码(服务器端生成)。
我读到wsdl2php是做这项工作的合适工具,所以我试了试,地址是:(http://labs.wso2.org/wsf/php/wsdl2phptool.php)
它的部分工作方式是创建存根代码,但它没有创建任何帮助类(函数参数似乎属于anyType类型,并且每个函数只生成一个参数)。我也有脚本版本,我可以在Windows中使用以下命令运行:
php wsdl2php.php -s http://My.Server.com/MyWCFService/MyWCFService.svc?wsdl > MyWebService.php
但由于某些原因,它似乎无法工作,因为它输出一个空文件。我不是PHP专家,因为我是一个.NET开发人员,但我需要测试我们的WSDL如何与PHP服务一起工作(只是为了看看可以用.NET中的相同方式从我们的WSDL生成PHP代码)。
如果您能给我一个为PHP web服务生成助手类和存根代码的简单示例,我将不胜感激。
谢谢!:)
发布于 2010-08-18 01:27:25
找到解决方案了!除了使用wsdl2php生成存根代码之外,为了生成助手类,您还需要一个WSDL文件。wsdl2php的当前版本(2.1.0)很难理解WCF生成的WSDL。这是因为在WCF WSDL中使用了导入标记(模式已经导入到wsdl文档中,而wsdl2php不喜欢这样)
在我使用WCFExtras创建了一个单独的WCF WSDL之后,我还设法生成了助手类!
"http://wcfextras.codeplex.com/“
"http://weblogs.asp.net/pglavich/archive/2010/03/16/making-wcf-output-a-single-wsdl-file-for-interop-purposes.aspx“(请先阅读本文,因为正确指定名称空间很重要,否则您将在使用WCFExtras时遇到问题)
发布于 2010-12-14 17:21:11
您还可以使用T4模板从您的服务实现中生成ServiceProxies和DataContract类。我一直在为我的一个项目开发它们,它们在GitHub上发布,包括示例:
https://github.com/schaermu/wcf-phpclient-t4
以防您需要在.NET解决方案中使用代理生成逻辑。
https://stackoverflow.com/questions/3466519
复制相似问题