最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
php生成wsdl文件方法总结
时间:2022-06-25 05:45:42 编辑:袖梨 来源:一聚教程网
在zend studio9中,与之前版本不一样的是,你需要单独安装wsdl插件,才可以使用,步骤如下:
1、打开zendstudio9,选择help(帮助)->welcome(欢迎
2、在右边的列表中找到WSDL Support,勾选
3、点击Apply changes(应用修改)
4、zde会自动安装,然后提示要重启,点击restart now(现在重新启动)
wsdl支持安装完毕,下面我们来生成一个wsdl文件,步骤如下:
1、选择保存wsdl的项目文件夹
2、右键-new(新建)->other(其他)
3、在弹出的对话框中选择web services,在下级菜单中选择WSDL file,点击next进入下一步
4、命名你的wsdl文件,点击next进入下一步
5、修改target namespace(目标名称空间),其他不变,点击finish。
一个wsdl文件生成完毕,如下图所示:
TestSoapSoap下面填写php webService 如soapservice.php
在NewOperation上点击鼠标右键:
NewOperation:添加方法。WebService里需要提供给别人调用的方法名
input :设置输入参数名和类型
output:设置返回值。
Add part:如果在input里添加,就是添加多个参数
set Type / set Element: 设置参数的input/output类型Type包含常见的数据类型(int,string,boolean,float,time…),Element就是自定义元素类型。
.利用SoapDiscovery.class.php生成
代码如下 | 复制代码 |
class SoapDiscovery { private $class_name = ''; private $service_name = ''; /** * SoapDiscovery::__construct() SoapDiscovery class Constructor. * * @param string $class_name * @param string $service_name **/ public function __construct($class_name = '', $service_name = '') { $this->class_name = $class_name; $this->service_name = $service_name; } /** * SoapDiscovery::getWSDL() Returns the WSDL of a class if the class is instantiable. * * @return string **/ public function getWSDL() { if (empty($this->service_name)) { throw new Exception('No service name.'); } $headerWSDL = "n"; $headerWSDL.= " $headerWSDL.= " if (empty($this->class_name)) { throw new Exception('No class name.'); } $class = new ReflectionClass($this->class_name); if (!$class->isInstantiable()) { throw new Exception('Class is not instantiable.'); } $methods = $class->getMethods(); $portTypeWSDL = ' $bindingWSDL = ' $serviceWSDL = ' $messageWSDL = ''; foreach ($methods as $method) { if ($method->isPublic() && !$method->isConstructor()) { $portTypeWSDL.= ' $bindingWSDL.= ' $messageWSDL.= ' $parameters = $method->getParameters(); foreach ($parameters as $parameter) { $messageWSDL.= ' } $messageWSDL.= " $messageWSDL.= ' $messageWSDL.= ' $messageWSDL.= " } } $portTypeWSDL.= " $bindingWSDL.= "n"; return sprintf('%s%s%s%s%s%s', $headerWSDL, $portTypeWSDL, $bindingWSDL, $serviceWSDL, $messageWSDL, ' } /** * SoapDiscovery::getDiscovery() Returns discovery of WSDL. * * @return string **/ public function getDiscovery() { return "n } } ?> |
使用案例:
代码如下 | 复制代码 |
include("Compute.php"); //你要生成的文件 |
方法二最重要的就是我们的SoapDiscovery.class.php文件了,这个文件网上有下载大家可百度找一下。
相关文章
- 王者荣耀侦探能力大测试攻略 王者荣耀侦探能力大测试怎么过 11-22
- 无期迷途主线前瞻兑换码是什么 11-22
- 原神欧洛伦怎么培养 11-22
- 炉石传说网易云音乐联动怎么玩 11-22
- 永劫无间手游确幸转盘怎么样 11-22
- 无期迷途主线前瞻兑换码是什么 无期迷途主线前瞻直播兑换码介绍 11-22