0

我有一个由 WCF 生成的 WSDL,现在这个 WSDL 应该用于创建 PHP Web 服务。我的 WSDL 包含到自定义 .NET 类(complexType)的映射,我需要一个 PHP WSDL 工具,它可以生成等效的 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 Web 服务一起使用(只是为了看看是否可以像在 .NET 中一样从我们的 WSDL 生成 PHP 代码)。

如果您能给我一个为 PHP Web 服务生成帮助程序类和存根代码的简单示例,我将不胜感激。

谢谢!:)

4

2 回答 2

0

找到了解决方案!除了使用 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-08-17T17:27:25.217 回答
0

You can also use T4 templates for generating ServiceProxies and DataContract classes from your Service implementation. I have been developing them for a project of mine, they are released on GitHub including samples:

https://github.com/schaermu/wcf-phpclient-t4

Just in case you want the proxy-generation logic in your .NET solution.

于 2010-12-14T09:21:11.110 回答