PHP实现WebService的简单示例和实现步骤


Posted in PHP onMarch 27, 2015

前段时间在webservice的问题上纠结了很长时间,本来想写在thinkphp的框架里面,可是怎么也实现不了,目前为止也仅仅是学会的没有框架的接口的开发。

在此资源共享一下步骤:

首先我创建的文件有:

api.php  api的接口类文件

api.wsdl  我创建产生的最后要调用的接口文件

cometrue.php 注册service api类内容的所有内容的执行文件

creat_wsdl.php  创建wsdl文件的执行方法文件

SoapDiscovery.class.php  必须要调用的soap类文件(可在网上查询下载)

第一步 :创建一个service的文件夹专门存放您的api接口项目

第二步:下载SoapDiscovery.class.php类文件,放在您的service文件夹里面

第三步:在service文件夹下面创建您自己api接口类文件api.php,文件内容示例如下:

<?php

class api{

    //我的测试接口方法

    public function test(){

        return "hello world";

    }

}

?>

好了,我们的接口写完之后,开始生成关于这个接口的wsdl文件

第四部:写一个生成wsdl文件的执行程序,在这里我来新建一个文件 creat_wsdl.php,同样放在service同级目录下面,内容如下:

<?php

include("api.php");

include("SoapDiscovery.class.php");

$disc = new SoapDiscovery('api','service');//api类文件名,service接口目录

$disc->getWSDL();

?>

第五步:执行creat_wsdl.php文件

PHP实现WebService的简单示例和实现步骤

然后,在service文件夹下面就多了一个api.wsdl的文件,如下图所示:

PHP实现WebService的简单示例和实现步骤

现在还没有完奥~

第六步:注册api类文件中的所有方法,在service文件夹下新建一个注册类文件的执行文件命名为:cometrue.php,文件内容如下:

<?php

$server = new SoapServer('api.wsdl', array('soap_version' => SOAP_1_2)); ##此处的Service.wsdl文件是上面生成的

$server->setClass("api"); //注册Service类的所有方法 

$server->handle();

?>

建完之后,执行该文件,此时便将类文件中所有的内容注册完成了,我们来测试一下这个接口

第七步 :在api的类文件api.php的最下面,加上调用的程序,加上之后api.php的文件内容如下:

<?php

class api{

    //我的测试接口方法

    public function test($a){

        return $a;

    }

}

$server = new SoapServer('api.wsdl', array('soap_version' => SOAP_1_2)); ##此处的Service.wsdl文件是上面生成的

$server->setClass("api"); //注册Service类的所有方法 

$server->handle();

?>

第七步:测试,在service外随意的位置(只要能访问得到)创建测试文件 命名为:test.php,文件内容如下:

<?php 

 $x = new SoapClient("http://rbac.local/service/api.php?wsdl"); //这里的链接换成你自己的访问链接

 echo $x->test('ok');

?>
PHP 相关文章推荐
十天学会php之第五天
Oct 09 PHP
在PHP中使用灵巧的体系结构
Oct 09 PHP
基于PHP的简单采集数据入库程序【续篇】
Jul 30 PHP
PHP实现将textarea的值根据回车换行拆分至数组
Jun 10 PHP
PHP模拟QQ登录的方法
Jul 29 PHP
Linux下编译redis和phpredis的方法
Apr 07 PHP
PHP时间戳格式全部汇总 (获取时间、时间戳)
Jun 13 PHP
php获取数据库结果集方法(推荐)
Jun 01 PHP
PHP API接口必备之输出json格式数据示例代码
Jun 27 PHP
微信接口生成带参数的二维码
Jul 31 PHP
浅谈laravel框架sql中groupBy之后排序的问题
Oct 17 PHP
PHP解密支付宝小程序的加密数据、手机号的示例代码
Feb 26 PHP
使用PHPExcel操作Excel用法实例分析
Mar 26 #PHP
mysql_connect localhost和127.0.0.1的区别(网络层阐述)
Mar 26 #PHP
php实现RSA加密类实例
Mar 26 #PHP
PHP中实现crontab代码分享
Mar 26 #PHP
PHP利用hash冲突漏洞进行DDoS攻击的方法分析
Mar 26 #PHP
ThinkPHP、ZF2、Yaf、Laravel框架路由大比拼
Mar 25 #PHP
CentOS 安装 PHP5.5+Redis+XDebug+Nginx+MySQL全纪录
Mar 25 #PHP
You might like
PHP程序级守护进程的实现与优化的使用概述
2013/05/02 PHP
微信支付开发教程(一)微信支付URL配置
2014/05/28 PHP
对 lightbox JS 图片控件进行了一下改造, 使其他支持复杂的图片说明
2010/03/20 Javascript
document.createElement()用法及注意事项(ff下不兼容)
2013/03/13 Javascript
在Javascript中 声明时用&quot;var&quot;与不用&quot;var&quot;的区别
2013/04/15 Javascript
学习JavaScript设计模式(多态)
2015/11/25 Javascript
浅谈javascript 函数表达式和函数声明的区别
2016/01/05 Javascript
浅谈jquery采用attr修改form表单enctype不起作用的问题
2016/11/25 Javascript
自学实现angularjs依赖注入
2016/12/20 Javascript
canvas 实现中国象棋
2017/02/17 Javascript
详解Vue生命周期的示例
2017/03/10 Javascript
动态Axios的配置步骤详解
2018/01/12 Javascript
浅谈Vue初学之props的驼峰命名
2018/07/19 Javascript
vue实现下拉加载其实没那么复杂
2019/08/13 Javascript
微信小程序JS加载esmap地图的实例详解
2019/09/04 Javascript
vue点击页面空白处实现保存功能
2019/11/06 Javascript
node.js中path路径模块的使用方法实例分析
2020/02/13 Javascript
详解vue beforeEach 死循环问题解决方法
2020/02/25 Javascript
JavaScript find()方法及返回数据实例
2020/04/30 Javascript
[10:07]2014DOTA2国际邀请赛 实拍选手现场观战DK对阵Titan
2014/07/12 DOTA
python爬取拉勾网职位数据的方法
2018/01/24 Python
python实现简单的单变量线性回归方法
2018/11/08 Python
Python中collections模块的基本使用教程
2018/12/07 Python
Python3获取拉勾网招聘信息的方法实例
2019/04/03 Python
利用Pytorch实现简单的线性回归算法
2020/01/15 Python
pyecharts动态轨迹图的实现示例
2020/04/17 Python
pandas dataframe 中的explode函数用法详解
2020/05/18 Python
详解Python 循环嵌套
2020/07/09 Python
Sixt美国租车:高端豪华车型自驾体验
2017/09/02 全球购物
创联软件面试题笔试题
2012/10/07 面试题
应用数学自荐书范文
2013/11/24 职场文书
2014乡镇“三八”国际劳动妇女节活动总结
2014/03/01 职场文书
个人授权委托书
2014/04/03 职场文书
学校春季防火方案
2014/06/08 职场文书
责任书范本大全
2015/05/11 职场文书
出纳2015年度工作总结范文
2015/10/14 职场文书