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类
Jul 15 PHP
BBS(php &amp; mysql)完整版(二)
Oct 09 PHP
phpMyAdmin 链接表的附加功能尚未激活问题的解决方法(已测)
Mar 27 PHP
处理(php-cgi.exe - FastCGI 进程超过了配置的请求超时时限)的问题
Jul 03 PHP
php取得字符串首字母的方法
Mar 25 PHP
PHP中两个float(浮点数)比较实例分析
Sep 27 PHP
PHP 中 Orientation 属性判断上传图片是否需要旋转
Oct 16 PHP
session 加入redis的实现代码
Jul 15 PHP
使用Zttp简化Guzzle 调用
Jul 02 PHP
php表单习惯用的正则表达式
Oct 11 PHP
PHP进阶学习之反射基本概念与用法分析
Jun 18 PHP
Thinkphp5 自定义上传文件名的实现方法
Jul 23 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
ftp类(example.php)
2006/10/09 PHP
php实现的Cookies操作类实例
2014/09/24 PHP
是 WordPress 让 PHP 更流行了 而不是框架
2016/02/03 PHP
CI(CodeIgniter)框架实现图片上传的方法
2017/03/24 PHP
php微信分享到朋友圈、QQ、朋友、微博
2019/02/18 PHP
jquery聚焦文本框与扩展文本框聚焦方法
2012/10/12 Javascript
自定义jQuery选项卡插件实例
2013/03/27 Javascript
jquery获取radio值实例
2014/10/16 Javascript
Javascript中的几种URL编码方法比较
2015/01/23 Javascript
jQuery实现响应鼠标滚动的动感菜单效果
2015/09/21 Javascript
Bootstrap轮播插件简单使用方法介绍
2016/06/21 Javascript
Angularjs---项目搭建图文教程
2016/07/08 Javascript
AngularJS入门教程之Select(选择框)详解
2016/07/27 Javascript
js仿微信语音播放实现思路
2016/12/12 Javascript
详解VueJs前后端分离跨域问题
2017/05/24 Javascript
Layui 设置select下拉框自动选中某项的方法
2018/08/14 Javascript
Angularjs Ng_repeat中实现复选框选中并显示不同的样式方法
2018/09/12 Javascript
JS实现图片切换效果
2018/11/17 Javascript
深入了解Hybrid App技术的相关知识
2019/07/17 Javascript
Python+Pika+RabbitMQ环境部署及实现工作队列的实例教程
2016/06/29 Python
mysql 之通过配置文件链接数据库
2017/08/12 Python
详解使用 pyenv 管理多个版本 python 环境
2017/10/19 Python
PyTorch快速搭建神经网络及其保存提取方法详解
2018/04/28 Python
python基于celery实现异步任务周期任务定时任务
2019/12/30 Python
Python之Sklearn使用入门教程
2021/02/19 Python
css3实现动画的三种方式
2020/08/24 HTML / CSS
可口可乐唇膏:Lip Smackers
2019/08/27 全球购物
Kusmi茶美国官网:优质散叶茶和茶包
2019/10/13 全球购物
大学奖学金获奖感言
2014/08/15 职场文书
2014年企业团支部工作总结
2014/12/10 职场文书
六一领导慰问欢迎词
2015/01/26 职场文书
介绍信样本
2015/01/31 职场文书
商务代表岗位职责
2015/02/15 职场文书
学校元旦晚会开场白
2015/05/29 职场文书
PHP 时间处理类Carbon
2022/05/20 PHP
新的CSS 伪类函数 :is() 和 :where()示例详解
2022/08/05 HTML / CSS