php webservice 代码生成,php中SOAP WebService的wsdl文件生成类

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.= "service_name\" targetNamespace=\"urn:$this->service_name\" xmlns:wsdl=\"http://schemas.xmlsoap.org/wsdl/\" xmlns:soap=\"http://schemas.xmlsoap.org/wsdl/soap/\" xmlns:tns=\"urn:$this->service_name\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:SOAP-ENC=\"http://schemas.xmlsoap.org/soap/encoding/\" xmlns=\"http://schemas.xmlsoap.org/wsdl/\">\n";

$headerWSDL.= "\n";

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 = '\n\n";

$serviceWSDL = '\n\nservice_name . 'Port" binding="tns:' . $this->service_name . "Binding\">\n\n\n";

$messageWSDL = '';

foreach ($methods as $method) {

if ($method->isPublic() && !$method->isConstructor()) {

$portTypeWSDL.= '\n" . '\ngetName() . "Response\" />\n\n";

$bindingWSDL.= '\n" . '\nservice_name\" encodingStyle=\"http://schemas.xmlsoap.org/soap/encoding/\" />\n\n\nservice_name\" encodingStyle=\"http://schemas.xmlsoap.org/soap/encoding/\" />\n\n\n";

$messageWSDL.= '\n";

$parameters = $method->getParameters();

foreach ($parameters as $parameter) {

$messageWSDL.= '\n";

}

$messageWSDL.= "\n";

$messageWSDL.= '\n";

$messageWSDL.= '\n";

$messageWSDL.= "\n";

}

}

$portTypeWSDL.= "\n";

$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\n\n";

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值