php有两个扩展可以实现web service,一个是NuSoap,一个是php 官方的soap扩展,由于soap是官方的,使用的人更多,所以项目中也是用的soap
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1、安装soap
#yum install php-soap -y
2、php加载redis扩展
#vi /etc/php.ini
extension_dir = "/usr/lib64/php/modules"
extension="soap.so"
#:wq! #保存退出
3、重新加载php-fpm
#service php-fpm reload
如果是apache 则 #service httpd restart
4、测试,查看phpinfo信息,如下图所示:
5、代码测试
SoapServer.php代码
/**
* SoapServer.php
* webservice 服务器端实例
*/
//包含提供服务的类
require_once 'Personinfo.php';
//根据实际情况修改下行内容
$s = new SoapServer(null, array("location" => "http://192.168.10.111/soap/SoapServer.php", "uri" => "SoapServer.php"));
$s->setClass("PersonInfo");
$s->handle();
?>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Personinfo.php代码
/**
* Personinfo.php
* 此类包含了需要调用的方法
* @author itbdw
*
*/
class Personinfo {
/**
* 返回姓名
* @return unknown_type
*/
public function getName() {
return 'IT不倒翁';
}
/**
* 返回特定格式的日期
* @return unknown_type
*/
public function getTime() {
return date('Y-m-d');
}
}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
SoapClient.php代码:
/**
* SoapClient.php
* webservice 客户端实例
*/
header('Content-Type:text/html;charset=utf-8');
try {
//根据实际情况修改下行内容
$soap = new SoapClient(null, array('location'=>'http://192.168.10.111/soap/SoapServer.php', 'uri'=>'SoapServer.php'));
echo $soap->getName();
echo $soap->getTime();
} catch(SoapFault $e) {
echo $e->getMessage();
} catch(Exception $e) {
echo $e->getMessage();
}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
访问
调用方式还有挺多的,如 $soap->__soapCall('functionName',$paramArray)
小奋斗文章
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~