laravel框架下soapServer支持wsdl的代码示例
发布时间 - 2018-10-26 00:00:00 点击率:次本篇文章给大家带来的内容是关于laravel中soapserver支持wsdl的代码示例,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
$server = new \SoapServer(null, ['uri' => 'noganluonguri']); $server->setObject(new NganluongServer()); ob_start(); $server->handle(); return ob_get_clean();
上边这段代码是无wsdl模式下的,但是这次是对接第三方的服务,需要我们这边去定义soap webservice,第三方来调用,第三方定义的是wsdl模式的,所以今天研究了下。
laravel代码示例(其它框架类似思考方式):
主要逻辑代码 - SoapService.php
创建路由
$api->any('soapUrl', 'SoapCallbackController@soapFun');路由主要实现方法-wsdl不存在则创建,不需要手动创建,url:https:xxx/soapurl?wsdl
getWSDL());
fclose($file);
}
$server = new \SoapServer($storagePath . '/wsdl/' . $className . '.wsdl', array('soap_version' => SOAP_1_2));
$server->setClass($procClass);
$server->handle();
} catch (\Exception $e) {
Log::error('wsdl服务创建异常');
}
}
}生成wsdl类 - SoapDiscovery.php
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" . '\n \n";
$bindingWSDL.= '\n" . ' \nservice_name\" encodingStyle=\"http://schemas.xmlsoap.org/soap/encoding/\" />\n\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, ' ');
//生成wsdl文件,将上面的return注释
$fso = fopen($this->class_name . ".wsdl", "w");
fwrite($fso, 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 ";
}
}
?>webservice测试
getSum(10, 24);
echo $soap->__soapCall('getSum',array(10,24));
# laravel
# php
# https
# 第三方
# 的是
# 不需要
# 两种
# 对你
# 有一定
# 这段
# 给大家
# 不存在
# 服务端
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel Octane如何提升性能_使用Laravel Octane加速你的应用
七夕网站制作视频,七夕大促活动怎么报名?
深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?
如何打造高效商业网站?建站目的决定转化率
Laravel如何实现文件上传和存储?(本地与S3配置)
javascript中数组(Array)对象和字符串(String)对象的常用方法总结
Laravel如何配置.env文件管理环境变量_Laravel环境变量使用与安全管理
公司网站制作价格怎么算,公司办个官网需要多少钱?
如何挑选优质建站一级代理提升网站排名?
如何在阿里云购买域名并搭建网站?
Android Socket接口实现即时通讯实例代码
Edge浏览器如何截图和滚动截图_微软Edge网页捕获功能使用教程【技巧】
iOS验证手机号的正则表达式
如何在Windows服务器上快速搭建网站?
详解Oracle修改字段类型方法总结
JavaScript数据类型有哪些_如何准确判断一个变量的类型
EditPlus中的正则表达式 实战(2)
google浏览器怎么清理缓存_谷歌浏览器清除缓存加速详细步骤
LinuxShell函数封装方法_脚本复用设计思路【教程】
Laravel软删除怎么实现_Laravel Eloquent SoftDeletes功能使用教程
iOS UIView常见属性方法小结
Laravel怎么判断请求类型_Laravel Request isMethod用法
Laravel怎么设置路由分组Prefix_Laravel多级路由嵌套与命名空间隔离【步骤】
HTML透明颜色代码在Angular里怎么设置_Angular透明颜色使用指南【详解】
Laravel怎么创建自己的包(Package)_Laravel扩展包开发入门到发布
如何利用DOS批处理实现定时关机操作详解
Laravel如何升级到最新的版本_Laravel版本升级流程与兼容性处理
高性能网站服务器配置指南:安全稳定与高效建站核心方案
Laravel怎么在Controller之外的地方验证数据
手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?
Python正则表达式进阶教程_复杂匹配与分组替换解析
东莞专业网站制作公司有哪些,东莞招聘网站哪个好?
智能起名网站制作软件有哪些,制作logo的软件?
如何在景安服务器上快速搭建个人网站?
怎么用AI帮你为初创公司进行市场定位分析?
焦点电影公司作品,电影焦点结局是什么?
Laravel Eloquent关联是什么_Laravel模型一对一与一对多关系精讲
Laravel如何使用Laravel Vite编译前端_Laravel10以上版本前端静态资源管理【教程】
如何在万网ECS上快速搭建专属网站?
如何在IIS7上新建站点并设置安全权限?
如何为不同团队 ID 动态生成多个非值班状态按钮
Laravel如何实现密码重置功能_Laravel密码找回与重置流程
在线制作视频网站免费,都有哪些好的动漫网站?
如何在IIS中配置站点IP、端口及主机头?
,交易猫的商品怎么发布到网站上去?
Python文件异常处理策略_健壮性说明【指导】
Laravel中Service Container是做什么的_Laravel服务容器与依赖注入核心概念解析
Win11怎么查看显卡温度 Win11任务管理器查看GPU温度【技巧】
实现点击下箭头变上箭头来回切换的两种方法【推荐】
如何用手机制作网站和网页,手机移动端的网站能制作成中英双语的吗?

